FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Announcing DrXlsx 1.0 by Charles Kwon
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Mon Aug 28, 2023 01:16 PM
hi Chalres,

your LIB work GREAT, thx

it is a "normal" that RAM is "limited" for 32 Bit App
i have "hope" it does "write" when have "read" but all seems to go to RAM

when it "crash" there is no XLSx, you need to "close" to "write" Excel Sheet

Question : is it possible to use a Thread to "write" what have been "read" before :?:
greeting,

Jimmy
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Mon Sep 04, 2023 09:27 PM
hi,

do you have a Sample how to "insert" Image into Excel Sheet using DrXlsx LIB :?:
Code (fw): Select all Collapse
   /* Insert an image. */
   worksheet_insert_image( worksheet, 1, 2, "hb_logo.png" )

   /* Insert an image with options. */
   options := {"x_scale" => .5, "y_scale" => .5 }
   worksheet_insert_image_opt( worksheet, CELL("B15"), "hb_logo.png", options )

   options := {"x_offset"=> 10 , "y_offset" => 5 }
   worksheet_insert_image_opt( worksheet, CELL("G2"), "hb_logo.png", options )
these Function seems also be in DrXlsx LIB but how to use it ... :?:
greeting,

Jimmy
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Thu Sep 21, 2023 03:48 PM

Hi

When will it be released?

Thank you to those who contributed.

Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 114
Joined: Fri Jul 21, 2006 07:15 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Thu Oct 12, 2023 06:01 PM
Hello everybody.
I'm trying to use the DrXlsx lib, but I can't generate the executable for a small example, could anyone tell me what's missing or am I doing it wrong?
is DrXlsx32x_bcc.lib is correct to my case, ok?
Thank you all.
Code (fw): Select all Collapse
#include "fivewin.ch"
FUNCTION Main()
    LOCAL oXlsx := TDrXlsx():New()

    SET DATE FORMAT "YYYY-MM-DD"

    oXlsx:CreateFile("d:\test.xlsx")
    oXlsx:WriteString(0,0,"Sample Head")
    oXlsx:WriteString(1,0,"Hello World!")
    oXlsx:Close()

RETURN NIL
Code (fw): Select all Collapse
FiveWin for xHarbour 23.04 - Apr. 2023          Harbour development power 
(c) FiveTech 1993-2023 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10
Compiling...
xHarbour 1.2.3 Intl. (SimpLex) (Build 20221118)
Copyright 1999-2022, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'drxlsx.prg' and generating preprocessed output to 'drxlsx.ppo'...
Generating C source output to 'drxlsx.c'...
Done.
Lines 19, Functions/Procedures 1, pCodes 52
Embarcadero C++ 7.40 for Win32 Copyright (c) 1993-2018 Embarcadero Technologies, Inc.
drxlsx.c:
Turbo Incremental Link 6.90 Copyright (c) 1997-2017 Embarcadero Technologies, Inc.
Error: Unresolved external '_fill_fopen64_filefunc' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_call_zopen64' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_fill_zlib_filefunc64_32_def_from_filefunc32' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_call_zseek64' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_call_ztell64' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_fill_fopen_filefunc' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|packager
Error: Unresolved external '_HB_FUN_HASTIMEPART' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
Error: Unresolved external '_HB_FUN_HB_HEVAL' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
Error: Unresolved external '_HB_FUN_HB_TTOS' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
FWH / xHarbour / BCC / MySql

Visual Studio / Harbour / DotNet Maui / C#
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Fri Oct 13, 2023 06:41 AM

Tienes que enlazar las librerias hbzip and zlib

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Fri Oct 13, 2023 09:03 AM
for these errors:
Code (fw): Select all Collapse
Error: Unresolved external '_HB_FUN_HASTIMEPART' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
Error: Unresolved external '_HB_FUN_HB_HEVAL' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
Error: Unresolved external '_HB_FUN_HB_TTOS' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
Add this code somewhere in your application program:
Code (fw): Select all Collapse
#ifdef __XHARBOUR__

function HB_HEVAL (h); return HEVAL(h)
function HB_TTOS(t);return TTOS(t)

function HasTimePart( tDate )

   static lBug

   if lBug == nil
      lBug  := HB_IsDateTime( Date() )
   endif

   if lBug
      return ( tDate - Int( tDate ) ) > 0
   endif

return HB_IsDateTime( tDate )
#endif
Regards



G. N. Rao.

Hyderabad, India
Posts: 114
Joined: Fri Jul 21, 2006 07:15 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Fri Oct 13, 2023 12:10 PM
Thanks Mr Antonio e Mr Nages.
nageswaragunupudi wrote:for these errors:
Code (fw): Select all Collapse
Error: Unresolved external '_HB_FUN_HASTIMEPART' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
Error: Unresolved external '_HB_FUN_HB_HEVAL' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
Error: Unresolved external '_HB_FUN_HB_TTOS' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|TDrXlsx
Add this code somewhere in your application program:
Code (fw): Select all Collapse
#ifdef __XHARBOUR__

function HB_HEVAL (h); return HEVAL(h)
function HB_TTOS(t);return TTOS(t)

function HasTimePart( tDate )

   static lBug

   if lBug == nil
      lBug  := HB_IsDateTime( Date() )
   endif

   if lBug
      return ( tDate - Int( tDate ) ) > 0
   endif

return HB_IsDateTime( tDate )
#endif
It works, thank you.

Mr Antonio, these libs already contains in the script, I am using buildx.bat from the samples folder.
Code (fw): Select all Collapse
echo %hdirl%\zlib.lib + >> b32.bc
echo %hdirl%\hbzip.lib + >> b32.bc
Now, show this errors:
Code (fw): Select all Collapse
Error: Unresolved external '_fill_fopen64_filefunc' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_call_zopen64' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_fill_zlib_filefunc64_32_def_from_filefunc32' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_call_zseek64' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_call_ztell64' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|zip
Error: Unresolved external '_fill_fopen_filefunc' referenced from D:\TOOLS\DRXLSX\DRXLSX32X_BCC.LIB|packager
FWH / xHarbour / BCC / MySql

Visual Studio / Harbour / DotNet Maui / C#
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Fri Oct 13, 2023 03:02 PM

please try adding this lib also to your link-script

\xharbour\lib\hbmzip.lib

Regards



G. N. Rao.

Hyderabad, India
Posts: 114
Joined: Fri Jul 21, 2006 07:15 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Fri Oct 13, 2023 09:56 PM
nageswaragunupudi wrote:please try adding this lib also to your link-script
\xharbour\lib\hbmzip.lib
It works fine now!
Thank you Mr. Nages
FWH / xHarbour / BCC / MySql

Visual Studio / Harbour / DotNet Maui / C#
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Sat Oct 14, 2023 04:34 PM

Hola buenos días para todos

Estamos terminando de implementar la clase del maestro Charles en algunos de nuestros informes, ya logramos crear los archivos de Excel, ahora requerimos poder cambiar los colores de las fuentes y el color de fondo de la celda, estuvimos revisando en la documentación que publico el maestro Charles, pero no encontramos como se debe hacer.

Tambien nos gustaría saber como podemos hacer para leer un archivo de Excel y recuperar los datos, incluyendo una imagen.

Si alguien tiene un ejemplo seria de mucha utilidad.

De antemano gracias.

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Sun Oct 15, 2023 12:56 AM
Master Nages, is this correct? If so, how do I trigger Excel to open the: testsayx.xlsx

Maestro Nages, ¿es esto correcto? Si es así, ¿cómo hago para que Excel abra: testsayx.xlsx
Code (fw): Select all Collapse
// C:\FWH..\SAMPLES\TESTDRXL.PRG - Master Nages,

#include "FiveWin.ch"
#include "DrXlsx.ch"

#ifdef __XHARBOUR__

   #xtranslate hb_DateTime( [<x,...>] )        => DateTime( <x> )

#endif

REQUEST DBFCDX

FUNCTION Main()

   SET DATE FORMAT "YYYY-MM-DD"

   HelloSayX()

RETURN NIL

// Mister Nages:

#ifdef __XHARBOUR__

FUNCTION HB_HEVAL(h) ; RETURN HEVAL(h)

FUNCTION HB_TTOS(t) ; RETURN TTOS(t)

FUNCTION HasTimePart( tDate )

   static lBug

   if lBug == nil
      lBug  := HB_IsDateTime( Date() )
   endif

   if lBug
      RETURN ( tDate - Int( tDate ) ) > 0
   endif

RETURN HB_IsDateTime( tDate )

#endif

FUNCTION HelloSayX()

   LOCAL oXlsx := TDrXlsx():New()
   LOCAL dDate := Date()
   LOCAL nValue := 2023
   LOCAL nValue2 := 19450815
   LOCAL nUSD    := 3000

   IF oXlsx:CreateFile( "testsayx.xlsx" ) <> 0

      ?" The file is already open."

      RETURN NIL

   ENDIF

   oXlsx:SetColumnSize( 0, 0, 20 )

   @ 0, 0 SAYX "Hello World!" OF oXlsx

   @ 1, 0 SAYX "CENTER Text" OF oXlsx ALIGN DRXLSX_ALIGN_CENTER

   @ 2, 0 SAYX "RIGHT  Text" OF oXlsx ALIGN DRXLSX_ALIGN_RIGHT

   @ 3, 0 SAYX  dDate   OF  oXlsx ALIGN DRXLSX_ALIGN_CENTER

   @ 4, 0 SAYX  nValue  OF  oXlsx PICTUREX "#,###"

   @ 5, 0 SAYX  nValue2 OF  oXlsx PICTUREX "#,###"

   @ 6, 0 SAYX  nUSD    OF  oXlsx PICTUREX "$#,###"

   oXlsx:Close()

RETURN NIL

FUNCTION Hello()

   LOCAL oXlsx := TDrXlsx():New()

   oXlsx:CreateFile( "test.xlsx" )
   oXlsx:WriteString( 0, 0, "안녕하세요" )
   oXlsx:WriteString( 1, 0, "Hello World!" )
   oXlsx:Close()

RETURN NIL

FUNCTION Hello2()

   LOCAL oXlsx := TDrXlsx():New()

   oXlsx:CreateFile( "testlogic.xlsx" )
   oXlsx:SetColumnSize( 0, 0, 12 )

   oXlsx:WriteString( 0, 0, "안녕하세요" )
   oXlsx:WriteString( 1, 0, "Hello World!" )
   oXlsx:WriteLogical( 2, 0, .T. )
   oXlsx:WriteDate( 3, 0, Date(), DRXLSX_ALIGN_CENTER, "dd-mm-yyyy" )
   oXlsx:Close()

RETURN NIL

FUNCTION Hello3()

   LOCAL oXlsx := TDrXlsx():New()

   oXlsx:CreateFile( "align.xlsx" )
   oXlsx:SetColumnSize( 0, 0, 12 )

   oXlsx:WriteString( 0, 0, "안녕하세요", DRXLSX_ALIGN_CENTER )

   oXlsx:WriteString( 1, 0, "Hello World!" )
   oXlsx:WriteLogical( 2, 0, .T. )
   oXlsx:WriteDate( 3, 0, Date(),, "dd-mm-yyyy" )

   oXlsx:Close()

RETURN NIL

FUNCTION Hello4()

   LOCAL oXlsx  := TDrXlsx():New()
   LOCAL dtTest := hb_DateTime( 2023, 8, 23, 20, 04, 30 )

   oXlsx:CreateFile( "merge.xlsx" )

   oXlsx:SetColumnSize( 0, 0, 30 )
   oXlsx:SetColumnSize( 0, 1, 30 )

   oXlsx:MergeRange( 0, 0, 0, 1, "Title", DRXLSX_ALIGN_CENTER )

   oXlsx:WriteString( 1, 0, "Product 1" )
   oXlsx:WriteDate( 1, 1, Date(), DRXLSX_ALIGN_CENTER, "yyyy-mm-dd" )

   oXlsx:WriteString( 2, 0, "Is Stock" )
   oXlsx:WriteLogical( 2, 1, .T., DRXLSX_ALIGN_CENTER )

   oXlsx:WriteString( 3, 0, "Stock Price" )
   oXlsx:WriteNumber( 3, 1, 9999,, "$#,##0.00" )

   oXlsx:WriteString( 4, 0, "Timestamp" )
   oXlsx:WriteDateTime( 4, 1, dtTest,, "yyyy-mm-dd hh:mm:dd" )

   oXlsx:Close()

RETURN NIL

FUNCTION Saytest()

   LOCAL oXlsx  := TDrXlsx():New()
   LOCAL dtTest := hb_DateTime( 2023, 8, 23, 20, 04, 30 )

   oXlsx:CreateFile( "say.xlsx" )

   oXlsx:SetColumnSize( 0, 0, 30 )
   oXlsx:SetColumnSize( 0, 1, 30 )
   oXlsx:Say( 0, 0, "Valtype" )
   oXlsx:Say( 0, 1, "Value" )

   oXlsx:Say( 1, 0, "Character" )
   oXlsx:Say( 2, 0, "Numeric" )
   oXlsx:Say( 3, 0, "Date" )
   oXlsx:Say( 4, 0, "Logic" )
   oXlsx:Say( 5, 0, "Datetime format" )
   oXlsx:Say( 6, 0, "Datetime" )

   oXlsx:Say( 1, 1, "Hello" )
   oXlsx:Say( 2, 1, 1234.0000,, "#,##0.000" )
   oXlsx:Say( 3, 1, Date() )
   oXlsx:Say( 4, 1, .T. )
   oXlsx:Say( 5, 1, dtTest,, "yyyy-mm-dd hh:mm:ss" )
   oXlsx:Say( 6, 1, dtTest )

   oXlsx:Close()

RETURN NIL

FUNCTION Hello5()

   LOCAL oXlsx  := TDrXlsx():New()
   LOCAL dtTest := hb_DateTime( 2023, 8, 23, 20, 04, 30 )
   LOCAL oFormat

   IF oXlsx:CreateFile( "merge2.xlsx" ) <> 0

      ?"The file is already open."
      RETURN NIL
   ENDIF

   /*
   oFormat := TDrXlsxFormat():New( oXlsx )

   oFormat:AddAlign( DRXLSX_ALIGN_CENTER )
   oFormat:AddAlign( DRXLSX_ALIGN_VERTICAL_CENTER )
   */

   DEFINE XLSXFORMAT oFormat OF oXlsx

   ADD XLSXALIGN DRXLSX_ALIGN_CENTER TO oFormat
   ADD XLSXALIGN DRXLSX_ALIGN_VERTICAL_CENTER TO oFormat

   oXlsx:SetColumnSize( 0, 0, 30 )
   oXlsx:SetColumnSize( 0, 1, 30 )

   oXlsx:MergeRange( 0, 0, 1, 1, "Title", oFormat )

   oXlsx:WriteString( 2, 0, "Product 1" )
   oXlsx:WriteDate( 2, 1, Date(), DRXLSX_ALIGN_CENTER, "yyyy-mm-dd" )

   oXlsx:WriteString( 3, 0, "Is Stock" )
   oXlsx:WriteLogical( 3, 1, .T., DRXLSX_ALIGN_CENTER )

   oXlsx:WriteString( 4, 0, "Stock Price" )
   oXlsx:WriteNumber( 4, 1, 9999,, "$#,##0.00" )

   oXlsx:WriteString( 5, 0, "Timestamp" )
   oXlsx:WriteDateTime( 5, 1, dtTest,, "yyyy-mm-dd hh:mm:dd" )

   oXlsx:WriteString( 6, 0, "Timestamp2" )
   oXlsx:WriteDateTime( 6, 1, dtTest )

   oXlsx:Close()

RETURN NIL

FUNCTION HelloFormula()

   LOCAL oXlsx := TDrXlsx():New()
   LOCAL dtTest := hb_DateTime()
   LOCAL oFormat

   IF oXlsx:CreateFile( "formula_format.xlsx" ) <> 0

      ?"The file is already open."

   ENDIF

   DEFINE XLSXFORMAT oFormat OF oXlsx

   ADD XLSX ALIGN          DRXLSX_ALIGN_CENTER      TO oFormat
   ADD XLSX NUMBER_FORMAT "yyyy-mm-dd hh.mm.ss.000" TO oFormat

   ADD XLSX BOLD TO oFormat
   ADD XLSX ITALIC TO oFormat

   ADD XLSX BOTTOM STYLE DRXLSX_BORDER_DOUBLE TO oFormat

   oXlsx:SetColumnSize( 0, 1, 30 )

   oXlsx:WriteString( 0, 0, "Timestamp" )
   oXlsx:WriteDateTime( 0, 1, dtTest )

   oXlsx:WriteString( 1, 0, "Timestamp + 30" )
   oXlsx:WriteFormula( 1, 1, "=B1+30",  oFormat )

   oXlsx:Close()

RETURN NIL

FUNCTION MakeDbf2Xls()

   rddSetDefault( "DBFCDX" )

   USE INVOICES NEW

   Dr_Dbf2Xlsx( "invoices.xlsx", .T. )

RETURN NIL

// FIN / END
Gracias, thanks.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Sun Oct 15, 2023 04:33 AM
If so, how do I trigger Excel to open the: testsayx.xlsx
Code (fw): Select all Collapse
ShellExectute( 0, "Open", cXlsxFile )
Regards



G. N. Rao.

Hyderabad, India
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Sun Oct 15, 2023 06:38 PM
Thanks mister Rao. Perfect!
Code (fw): Select all Collapse
// C:\FWH..\SAMPLES\TESTDRXL.PRG - Master Nages, Moidified: 15/10/2023 Joao.

#include "FiveWin.ch"
#include "DrXlsx.ch"

#ifdef __XHARBOUR__

   #xtranslate hb_DateTime( [<x,...>] )        => DateTime( <x> )

#endif

REQUEST DBFCDX

FUNCTION Main()

   // SET DATE FORMAT "YYYY-MM-DD"
   SET CENTURY ON
   SET DATE BRITISH
   SET TIME FORMAT TO "HH:MM:SS"
   SET EPOCH TO YEAR( DATE() ) - 30
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET _3DLOOK ON
   SET UNIQUE OFF
   SET ESCAPE OFF
   SET EXACT ON
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF
   SET OPTIMIZE ON

   HelloSayX()

RETURN NIL

// Mister Nages:

#ifdef __XHARBOUR__

FUNCTION HB_HEVAL(h) ; RETURN HEVAL(h)

FUNCTION HB_TTOS(t) ; RETURN TTOS(t)

FUNCTION HasTimePart( tDate )

   static lBug

   if lBug == nil
      lBug  := HB_IsDateTime( Date() )
   endif

   if lBug
      RETURN ( tDate - Int( tDate ) ) > 0
   endif

RETURN HB_IsDateTime( tDate )

#endif

FUNCTION HelloSayX()

   LOCAL oXlsx     := TDrXlsx():New()
   LOCAL dDate     := Date()
   LOCAL nValue    := 2023
   LOCAL nValue2   := 19450815
   LOCAL nUSD      := 3000
   LOCAL cXlsxFile := "Testsayx.xlsx"

   IF oXlsx:CreateFile( "Testsayx.xlsx" ) <> 0

      ? " The file is already open."

      RETURN NIL

   ENDIF

   oXlsx:SetColumnSize( 0, 0, 20 )

   @ 0, 0 SAYX "Hello World!" OF oXlsx

   @ 1, 0 SAYX "CENTER Texto" OF oXlsx ALIGN DRXLSX_ALIGN_CENTER

   @ 2, 0 SAYX "RIGHT  Texto" OF oXlsx ALIGN DRXLSX_ALIGN_RIGHT

   @ 3, 0 SAYX  "Date: "      OF oXlsx ALIGN DRXLSX_ALIGN_CENTER

   @ 4, 0 SAYX  dDate         OF oXlsx ALIGN DRXLSX_ALIGN_CENTER

   @ 5, 0 SAYX  nValue        OF oXlsx PICTUREX "#,###"

   @ 6, 0 SAYX  nValue2       OF oXlsx PICTUREX "#,###"

   @ 7, 0 SAYX  "US$: "       OF oXlsx ALIGN DRXLSX_ALIGN_RIGHT

   @ 8, 0 SAYX  nUSD          OF oXlsx PICTUREX "$#,###"

   oXlsx:Close()

   // ShellExecute( 0, "Open", cXlsxFile )  // Mister Rao
   MsgRun( "AGUARDE... ABRINDO O PROGRAMA DO EXCEL...",                      ;
           "Por Favor, Espere Abertura. Pode Demorar.",                      ;
           { || WinExec( ShellExecute( 0, "Open", cXlsxFile ) ), 3 } )

RETURN NIL

FUNCTION Hello()

   LOCAL oXlsx := TDrXlsx():New()

   oXlsx:CreateFile( "test.xlsx" )
   oXlsx:WriteString( 0, 0, "안녕하세요" )
   oXlsx:WriteString( 1, 0, "Hello World!" )
   oXlsx:Close()

RETURN NIL

FUNCTION Hello2()

   LOCAL oXlsx := TDrXlsx():New()

   oXlsx:CreateFile( "testlogic.xlsx" )
   oXlsx:SetColumnSize( 0, 0, 12 )

   oXlsx:WriteString( 0, 0, "안녕하세요" )
   oXlsx:WriteString( 1, 0, "Hello World!" )
   oXlsx:WriteLogical( 2, 0, .T. )
   oXlsx:WriteDate( 3, 0, Date(), DRXLSX_ALIGN_CENTER, "dd-mm-yyyy" )
   oXlsx:Close()

RETURN NIL

FUNCTION Hello3()

   LOCAL oXlsx := TDrXlsx():New()

   oXlsx:CreateFile( "align.xlsx" )
   oXlsx:SetColumnSize( 0, 0, 12 )

   oXlsx:WriteString( 0, 0, "안녕하세요", DRXLSX_ALIGN_CENTER )

   oXlsx:WriteString( 1, 0, "Hello World!" )
   oXlsx:WriteLogical( 2, 0, .T. )
   oXlsx:WriteDate( 3, 0, Date(),, "dd-mm-yyyy" )

   oXlsx:Close()

RETURN NIL

FUNCTION Hello4()

   LOCAL oXlsx  := TDrXlsx():New()
   LOCAL dtTest := hb_DateTime( 2023, 8, 23, 20, 04, 30 )

   oXlsx:CreateFile( "merge.xlsx" )

   oXlsx:SetColumnSize( 0, 0, 30 )
   oXlsx:SetColumnSize( 0, 1, 30 )

   oXlsx:MergeRange( 0, 0, 0, 1, "Title", DRXLSX_ALIGN_CENTER )

   oXlsx:WriteString( 1, 0, "Product 1" )
   oXlsx:WriteDate( 1, 1, Date(), DRXLSX_ALIGN_CENTER, "yyyy-mm-dd" )

   oXlsx:WriteString( 2, 0, "Is Stock" )
   oXlsx:WriteLogical( 2, 1, .T., DRXLSX_ALIGN_CENTER )

   oXlsx:WriteString( 3, 0, "Stock Price" )
   oXlsx:WriteNumber( 3, 1, 9999,, "$#,##0.00" )

   oXlsx:WriteString( 4, 0, "Timestamp" )
   oXlsx:WriteDateTime( 4, 1, dtTest,, "yyyy-mm-dd hh:mm:dd" )

   oXlsx:Close()

RETURN NIL

FUNCTION Saytest()

   LOCAL oXlsx  := TDrXlsx():New()
   LOCAL dtTest := hb_DateTime( 2023, 8, 23, 20, 04, 30 )

   oXlsx:CreateFile( "say.xlsx" )

   oXlsx:SetColumnSize( 0, 0, 30 )
   oXlsx:SetColumnSize( 0, 1, 30 )
   oXlsx:Say( 0, 0, "Valtype" )
   oXlsx:Say( 0, 1, "Value" )

   oXlsx:Say( 1, 0, "Character" )
   oXlsx:Say( 2, 0, "Numeric" )
   oXlsx:Say( 3, 0, "Date" )
   oXlsx:Say( 4, 0, "Logic" )
   oXlsx:Say( 5, 0, "Datetime format" )
   oXlsx:Say( 6, 0, "Datetime" )

   oXlsx:Say( 1, 1, "Hello" )
   oXlsx:Say( 2, 1, 1234.0000,, "#,##0.000" )
   oXlsx:Say( 3, 1, Date() )
   oXlsx:Say( 4, 1, .T. )
   oXlsx:Say( 5, 1, dtTest,, "yyyy-mm-dd hh:mm:ss" )
   oXlsx:Say( 6, 1, dtTest )

   oXlsx:Close()

RETURN NIL

FUNCTION Hello5()

   LOCAL oXlsx  := TDrXlsx():New()
   LOCAL dtTest := hb_DateTime( 2023, 8, 23, 20, 04, 30 )
   LOCAL oFormat

   IF oXlsx:CreateFile( "merge2.xlsx" ) <> 0

      ?"The file is already open."
      RETURN NIL
   ENDIF

   /*
   oFormat := TDrXlsxFormat():New( oXlsx )

   oFormat:AddAlign( DRXLSX_ALIGN_CENTER )
   oFormat:AddAlign( DRXLSX_ALIGN_VERTICAL_CENTER )
   */

   DEFINE XLSXFORMAT oFormat OF oXlsx

   ADD XLSXALIGN DRXLSX_ALIGN_CENTER TO oFormat
   ADD XLSXALIGN DRXLSX_ALIGN_VERTICAL_CENTER TO oFormat

   oXlsx:SetColumnSize( 0, 0, 30 )
   oXlsx:SetColumnSize( 0, 1, 30 )

   oXlsx:MergeRange( 0, 0, 1, 1, "Title", oFormat )

   oXlsx:WriteString( 2, 0, "Product 1" )
   oXlsx:WriteDate( 2, 1, Date(), DRXLSX_ALIGN_CENTER, "yyyy-mm-dd" )

   oXlsx:WriteString( 3, 0, "Is Stock" )
   oXlsx:WriteLogical( 3, 1, .T., DRXLSX_ALIGN_CENTER )

   oXlsx:WriteString( 4, 0, "Stock Price" )
   oXlsx:WriteNumber( 4, 1, 9999,, "$#,##0.00" )

   oXlsx:WriteString( 5, 0, "Timestamp" )
   oXlsx:WriteDateTime( 5, 1, dtTest,, "yyyy-mm-dd hh:mm:dd" )

   oXlsx:WriteString( 6, 0, "Timestamp2" )
   oXlsx:WriteDateTime( 6, 1, dtTest )

   oXlsx:Close()

RETURN NIL

FUNCTION HelloFormula()

   LOCAL oXlsx := TDrXlsx():New()
   LOCAL dtTest := hb_DateTime()
   LOCAL oFormat

   IF oXlsx:CreateFile( "formula_format.xlsx" ) <> 0

      ? "The file is already open."

   ENDIF

   DEFINE XLSXFORMAT oFormat OF oXlsx

   ADD XLSX ALIGN          DRXLSX_ALIGN_CENTER      TO oFormat
   ADD XLSX NUMBER_FORMAT "yyyy-mm-dd hh.mm.ss.000" TO oFormat

   ADD XLSX BOLD TO oFormat
   ADD XLSX ITALIC TO oFormat

   ADD XLSX BOTTOM STYLE DRXLSX_BORDER_DOUBLE TO oFormat

   oXlsx:SetColumnSize( 0, 1, 30 )

   oXlsx:WriteString( 0, 0, "Timestamp" )
   oXlsx:WriteDateTime( 0, 1, dtTest )

   oXlsx:WriteString( 1, 0, "Timestamp + 30" )
   oXlsx:WriteFormula( 1, 1, "=B1+30",  oFormat )

   oXlsx:Close()

RETURN NIL

FUNCTION MakeDbf2Xls()

   rddSetDefault( "DBFCDX" )

   USE INVOICES NEW

   Dr_Dbf2Xlsx( "invoices.xlsx", .T. )

RETURN NIL

// FIN / END - Thanks Mister Rao. - kapiabafwh@gmail.com
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Mon Oct 16, 2023 01:56 PM
FONT no funciona?
Code (fw): Select all Collapse
FUNCTION Hello()

   LOCAL cXlsxFile := "Test.xlsx"
   LOCAL oXlsx := TDrXlsx():New()

   DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -28 BOLD // no funciona?

   oXlsx:CreateFile( "test.xlsx" )

   oXlsx:WriteString( 0, 0, "안녕하세요",, oFont )
   oXlsx:WriteString( 1, 0, "Hello World!",, oFont )

   oXlsx:Close()

   MsgRun( "AGUARDE... ABRINDO O PROGRAMA DO EXCEL...",                      ;
           "Por Favor, Espere Abertura. Pode Demorar.",                      ;
           { || WinExec( ShellExecute( 0, "Open", cXlsxFile ) ), 3 } )

RETURN NIL
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Announcing DrXlsx 1.0 by Charles Kwon
Posted: Sun Nov 19, 2023 10:51 AM
Hola buenos días para todos

Acabamos de descargar la nueva distribución de xharbour para Borland 770 y tambien la distribución de borland 770. Al intentar compilar la aplicación, nos sale el siguiente error:
Code (fw): Select all Collapse
Embarcadero C++ 7.70 for Win32 Copyright (c) 1993-2023 Embarcadero Technologies, Inc.
C:\Fivedit\R32_menu.c:
xHarbour 1.3.0 Intl. (SimpLex) (Build 20231104)
Copyright 1999-2023, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'z:\prg\R32_perm.prg'...

100

200

100

100

100

100

100

200

300

400

500

60
Turbo Incremental Link 6.97 Copyright (c) 1997-2022 Embarcadero Technologies, Inc.
Error: Unresolved external '__streams' referenced from C:\DLYMA\DRXLSX\DRXLSX32X_BCC.LIB|drawing
Error: Unable to perform link
Link Error
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]