Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Providers
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 06/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Debo realizar una exportación de datos a Excel (*.xlsx)...

...pero tengo algunos problemas.

¡Buen día/tarde/noche!, requiero información y ayuda para resolver una pequeña particularidad.

Tengo un programa que debe realizar una exportación de datos a Excel (*.xls) , de tres columnas obtenidas de SQL Server. Actualmente lo realiza cómodamente con ésta línea de conexión:
Code:
cConn := "DBQ="+cNomArc + ";Driver={Microsoft Excel Driver (*.xls)};ReadOnly=0;MaxScanRows=0;FirstRowHasNames=1;DriverId=278"
Donde cNomArc es el nombre del archivo que contendrá los nuevos datos.

Probé con la línea:
Code:
cConn := 'Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ='+cNomArc+';Mode=ReadWrite;ReadOnly=False;Extended Properties="Mode=ReadWrite;ReadOnly=False;HDR=YES"'
recomendada en alguno de los sitios de desarrolladores que frecuento, y además de obtener un archivo ridículamente pequeño (7 Kb), no es legible para Excel marcando "Excel no puede leer el archivo 'x' porque el formato de la extensión...", ya saben...

Y ahora el problema es que necesito exportarlo a *.xlsx para "modernizar" la salida de los datos; en el otro extremo (es decir, la importación de datos) tengo ésta conexión plenamente funcional y leyendo cómodamente archivos *.xlsx:
Code:
cConn := 'Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ='+cNomArc+';Extended Properties="Mode=Read;ReadOnly=True;HDR=YES"'

Obviamente, he probado con varias conexiones la exportación, hasta que me topé con una recomendación emanada directamente de Microsoft donde dice que la exportación DEBE NECESARIAMENTE ser en formato Excel 97-2003 *.xls para ser viable..., pero debo exportarlo en *.xlsx funcional si deseo continuar con el diseño del sistema...

¿Alguien tendrá alguna idea que pueda servirme? Agradezco de antemano su paciencia y comprensión.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #2  
Old 06/07/2017
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: Ciudad de México
Posts: 20,269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Podrías intentar acceder a Excel vía OLE, tú sabes, usando OleVariants y COM y llenando las celdas una a una. El problema ahí sería la velocidad. Si es una tabla muy grande podría ser algo lento. Incluso, se me ocurre que podrías poner los datos en CSV en el portapapeles y luego, mediante OLE, pegar el contenido en el archivo xlsx.

LineComment Saludos
Reply With Quote
  #3  
Old 06/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Quote:
Originally Posted by roman View Post
...Podrías intentar acceder a Excel vía OLE, tú sabes, usando OleVariants y COM ...
Efectivamente, el tema de la velocidad es crucial. Si por exportar 2,000 registros se tarda en el método actual casi un minuto, me lo reclaman cada vez que pueden...

Gracias.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #4  
Old 06/07/2017
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Un bucle recorriendo un dataset y enviando a un fichero de texto del tipo csv es rapidísimo y muy simple de hacer. ¿No te viene bien ese formato?
Reply With Quote
  #5  
Old 06/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Quote:
Originally Posted by Casimiro Notevi View Post
Un bucle recorriendo un dataset y enviando a un fichero de texto del tipo csv es rapidísimo y muy simple de hacer. ¿No te viene bien ese formato?
No, Casimiro. Lamentablemente para mí, DEBE SER NECESARIAMENTE EN XLSX..., el caso del CSV ya está contemplado desde el principio de los tiempos de éste programa (en el que estoy trabajando)...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #6  
Old 06/07/2017
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: Ciudad de México
Posts: 20,269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Acabo de pegar 2600 registros en formato CSV en una hoja xlsx en un abrir y cerrar de ojos. A ese tiempo (abrir y cerrar de ojos) únicamente tendrías que añadir el tiempo de formar los datos CSV (debe ser imperceptible) crear el archivo y guardarlo. Te aseguro que tardará menos de un minuto y el archivo final estará en formato xlsx. Lo del CSV en memoria el cliente ni lo sabrá.

LineComment Saludos
Reply With Quote
  #7  
Old 06/07/2017
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: Ciudad de México
Posts: 20,269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No tengo Delphi a mano y mi fluidez en el lenguaje ya no es lo que era, pero aquí una base de la cual partir:

Código Delphi [-]
uses ComObj, Clipbrd;

(*
  Exporta el contenido de un DataSet a un archivo de Excel. Desde luego, Excel debe estar instalado
  en el sistema y el archivo resultante estará en el formato de la versión instalada.
*)
procedure Exportar(DataSet: TDataSet; Archivo: String);
var
  Excel, Libro: OleVariant;
  CSV: TStrings;
  Linea: String;

begin
  CSV := TStringList.Create;

  try
    DataSet.First;

    while not DataSet.Eof do
    begin
      Linea := '';

      for I := 0 to DataSet.Fields.Count - 1 do
        Linea := Linea + '"' + DataSet.Fields[i].AsString + '"' + #9;

      CSV.Add(Linea);
      DataSet.Next;
    end;

    Clipboard.AsText := CSV.Text;

    Excel := CreateOleObject('Excel.Application');
    Excel.SheetsInNewWorkbook := 1;
    Libro := Excel.WorkBooks.Add;
    Libro.ActiveSheet.Paste();
    Libro.SaveAs(Archivo);
  finally
    Excel.Quit;
    CSV.Free;
  end;
end;

LineComment Saludos
Reply With Quote
  #8  
Old 06/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Quote:
Originally Posted by roman View Post
No tengo Delphi a mano y mi fluidez en el lenguaje ya no es lo que era, pero aquí una base de la cual partir...
...y una buena base, por cierto. No te preocupes, Román, el lenguaje en el que debo aplicar ésta exportación es XBase++, casi nada.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #9  
Old 06/07/2017
Al González's Avatar
[Al González] Al González is offline
In .pas since 1991
 
Join Date: May 2003
Posts: 5,610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Quote:
Originally Posted by TiammatMX View Post
[...]el lenguaje en el que debo aplicar ésta exportación es XBase++, casi nada.
¿Y por qué no lo decías, Felipe?

Si esa cosa, XBase++, admite DLLs de Windows (y la solución es para ejecutarse en Windows ), entonces podrías programar la solución en Delphi compilándola como DLL, y que la aplicación hecha en esa cosa, XBase++, llame a las funciones de la DLL para realizar la exportación.

La clase TghOpenXMLSpreadsheet y asociadas están pensadas para realizar diversas tareas con documentos de OpenXML, concretamente Excel de formato moderno. Sin embargo, no están aún lo suficientemente actualizadas para trabajar fuera de Delphi XE7 o permitir la escritura de forma fácil. Actualmente estoy trabajando en la adaptación para Delphi Berlin, en la cual pienso incluir también la capacidad de comprimir y descomprimir el documento.

Recordar que .xlsx no es más que un .zip con ciertas carpetas y archivos XML definidos por Microsoft.

¡Saludos!

Al González.

Last edited by Al González : 06/07/2017 at 23:12.
Reply With Quote
  #10  
Old 06/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Quote:
Originally Posted by Al González View Post
¿Y por qué no lo decías, Felipe? ...
Por que, compadre Al, en ésta empresa son ALÉRGICOS a VisualBASIC, C#, Delphi, ObjectPASCAL, Python..., o sea, a todo lo que NO sea su antiquísimo lenguaje para desarrollar. Por eso deseaba una solución general, que pudiera aplicar sin necesidad de dirigirla a un lenguaje específico.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #11  
Old 06/07/2017
Al González's Avatar
[Al González] Al González is offline
In .pas since 1991
 
Join Date: May 2003
Posts: 5,610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
En una situación así, revisar el estándar de esos archivos puede ser un buen punto de partida: http://www.ecma-international.org/pu...s/Ecma-376.htm



¡A dónde te fuiste a meter, compadre! ¿Qué empresa es? ¿Industrias Picapiedra Jurasic Inc.?
Reply With Quote
  #12  
Old 06/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Quote:
Originally Posted by Al González View Post
...¡A dónde te fuiste a meter, compadre! ¿Qué empresa es? ¿Industrias Picapiedra Jurasic Inc.? ...
A una empresa en Puebla de Zaragoza, propiedad de un contador de casi 80 años y "lidereada" por un ingeniero de sistemas que no ha trabajado en NINGÚN OTRO SECTOR O EMPRESA..., ¿ahora entiendes por qué ME URGE salir de aquí?
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #13  
Old 07/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Y al final quedó así:

Código Delphi [-]
    oExcel := CreateObject( "Excel.Application" )
* FEOL No eliminar ésta línea, si'l vous plait...
*      oExcel:visible := .T.
      oExcel:SheetsInNewWorkbook := 1
    oHoja := oExcel:Workbooks:Add
      oSheet := oHoja:ActiveSheet
      oSheet:Cells( 1, 1 ):value := 'CODIGO'
      oSheet:Cells( 1, 2 ):value := 'PRECIO'
      oSheet:Cells( 1, 3 ):value := 'MONEDA'

      cStmt    := "SELECT ACODPRO, APREACT AS PRECIO, ATIPMON AS MONEDA FROM FALISPR WHERE ANUMLIS=?"
      oCurArti := ADODataSet():create( cStmt, gConn )
      oCurArti:Execute( oLis:value )

      DO WHILE !oCurArti:EOF()

        oSheet:Cells( iRen, 1 ):value := oCurArti:ACODPRO
        oSheet:Cells( iRen, 2 ):value := oCurArti:PRECIO
        oSheet:Cells( iRen, 3 ):value := oCurArti:MONEDA

         oCurArti:skip()
         iRen++
      ENDDO

      oHoja:SaveAs( cNomArc )
      oExcel:ActiveWorkbook:Close()
      oExcel:Quit()

OK, no es Delphi, pero creo que quedó entendible. Hace lo que debe, sin problemas o errores..., gracias a todos por su colaboración.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #14  
Old 07/07/2017
Al González's Avatar
[Al González] Al González is offline
In .pas since 1991
 
Join Date: May 2003
Posts: 5,610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Enhorabuena. Qué curiosa sintaxis.
Reply With Quote
  #15  
Old 07/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Quote:
Originally Posted by Al González View Post
Enhorabuena. Qué curiosa sintaxis.
Es dBase III+ + Clipper + "Manejo" de objetos + "Uso" de OCX y DLL's = XBase++

Por eso me contrataron (supuestamente), por que manejo todo éso...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #16  
Old 07/07/2017
newtron's Avatar
[newtron] newtron is offline
Membrillo Premium
 
Join Date: Apr 2007
Location: Motril, Granada
Posts: 4,214
Poder: 24
newtron Va camino a la fama
Quote:
Originally Posted by TiammatMX View Post
Es dBase III+ + Clipper + "Manejo" de objetos + "Uso" de OCX y DLL's = XBase++

Por eso me contrataron (supuestamente), por que manejo todo éso...
Una pregunta tonta. ¿Clipper no se usaba en msdos? ¿qué herramienta usas para compilar ese código?

Saludos
__________________
Be water my friend.
Reply With Quote
  #17  
Old 07/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Quote:
Originally Posted by newtron View Post
Una pregunta tonta. ¿Clipper no se usaba en msdos? ¿qué herramienta usas para compilar ese código?...
No es tonta. XBase++ por sí mismo es un compilador. No es RAID ni tiene IDE, así que casi casi estoy programando con alambres...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
  #18  
Old 07/07/2017
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: Ciudad de México
Posts: 20,269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quote:
Originally Posted by TiammatMX View Post
Y al final quedó así:

Código Delphi [-]
    oExcel := CreateObject( "Excel.Application" )
* FEOL No eliminar ésta línea, si'l vous plait...
*      oExcel:visible := .T.
      oExcel:SheetsInNewWorkbook := 1
    oHoja := oExcel:Workbooks:Add
      oSheet := oHoja:ActiveSheet
      oSheet:Cells( 1, 1 ):value := 'CODIGO'
      oSheet:Cells( 1, 2 ):value := 'PRECIO'
      oSheet:Cells( 1, 3 ):value := 'MONEDA'

      cStmt    := "SELECT ACODPRO, APREACT AS PRECIO, ATIPMON AS MONEDA FROM FALISPR WHERE ANUMLIS=?"
      oCurArti := ADODataSet():create( cStmt, gConn )
      oCurArti:Execute( oLis:value )

      DO WHILE !oCurArti:EOF()

        oSheet:Cells( iRen, 1 ):value := oCurArti:ACODPRO
        oSheet:Cells( iRen, 2 ):value := oCurArti:PRECIO
        oSheet:Cells( iRen, 3 ):value := oCurArti:MONEDA

         oCurArti:skip()
         iRen++
      ENDDO

      oHoja:SaveAs( cNomArc )
      oExcel:ActiveWorkbook:Close()
      oExcel:Quit()

OK, no es Delphi, pero creo que quedó entendible. Hace lo que debe, sin problemas o errores..., gracias a todos por su colaboración.
Guau! O sea que con Clipper tienes acceso a objetos COM? Y, ¿qué tal los tiempos? ¿Cuanto tarda el volcado?

LineComment Saludos
Reply With Quote
  #19  
Old 07/07/2017
TiammatMX's Avatar
TiammatMX TiammatMX is offline
Miembro
 
Join Date: Jun 2006
Location: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 20
TiammatMX Va camino a la fama
Quote:
Originally Posted by roman View Post
Guau! O sea que con Clipper tienes acceso a objetos COM? Y, ¿qué tal los tiempos? ¿Cuanto tarda el volcado?...
Aclaración, Román. NO ES CLIPPER, es un lenguaje que toma "lo mejor de ..." (dBase III, III+, IV, Clipper, algo de C/C++) y lo hace "más o menos Windows". Digo, tampoco es el mejor, pero es lo que hay. Y los viejitos como yo, somos especialistas, sobre todo los que alguna vez usamos esos lenguajes...

Los tiempos..., ni mejor ni peor, con ése código tarda cerca de 1 minuto en leer, 50 y algo mil registros.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Modificar un documento MS EXCEL 2003 [.xls] o 2007 [.xlsx] adrall Conexión con bases de datos 0 02/05/2016 15:12
Exportacion datos Excel 2007 hlbarragan Varios 2 22/09/2011 14:44
exportar datos de Dataset a XLSX nextor Conexión con bases de datos 3 20/12/2010 18:43
Tutorial Paso a Paso Exportación de datos de TQuery a Excel lKinGl Servers 0 06/11/2008 00:10
Exportación de datos de Excel a Tablas Paradox Mone Conexión con bases de datos 1 31/10/2005 21:15


All times are GMT +2. The time now is 20:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi