Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2011-12

Excel como origen de datos?

11 messages · 7 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Maxi

Desde delphi con las componentes ADO podia leer un archivo excel como si de un dbf se tratara, pero aqui en lazarus no encuentro la manera, hay alguna forma?
Necesito leer un excel para importar datos y pasarlos a otra BD firebird

El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html Linux User #495070 http://miexperiencialinux.blogspot.com/

Reply by email

Claudio Romero
to Maxi

En mi caso, desde Excel o LibreOffice grabo el archivo xls a dbf. Y desde ahi lo importo a Firebird con un programita que hice en Lazarus

Otra opci�n que no he probado ser�a acceder al excel con Odbc desde Lazarus.

Obviamente antes, deben coincidir las estructuras de datos entre origen y destino, o va a salir errores.

Otra opci�n es usar herramientas de administraci�n de BD que copian datos de diferentes fuentes.

Saludos

Reply by email

Paola Bruccoleri
to Claudio Romero

El 14/12/2011 09:39 a.m., Claudio Romero escribi�:

Show quoted text 11 lines
En mi caso, desde Excel o LibreOffice grabo el archivo xls a dbf. Y desde ahi lo importo a Firebird con un programita que hice en Lazarus Otra opci�n que no he probado ser�a acceder al excel con Odbc desde Lazarus. Obviamente antes, deben coincidir las estructuras de datos entre origen y destino, o va a salir errores. Otra opci�n es usar herramientas de administraci�n de BD que copian datos de diferentes fuentes.

otra cosa es que puede exportar ese xls a csv y luego cargalo desde lazarus a "mano" o capaz que hay alg�n componente....

Reply by email

José Mejuto
to Maxi: Desde delphi con las componentes ADO podia leer un archivo excel como si de un dbf se…

Hello Maxi,

Wednesday, December 14, 2011, 2:51:23 AM, you wrote:

M> Desde delphi con las componentes ADO podia leer un archivo excel como M> si de un dbf se tratara, pero aqui en lazarus no encuentro la manera, M> hay alguna forma?
M> Necesito leer un excel para importar datos y pasarlos a otra BD firebird

Puedes leer los xls con fpspreadsheet:

http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/fpspreadsheet/

Best regards, Jos�

Reply by email

Maxi
to José Mejuto

Gracias a todos por contestar, lo que me pasate jose parece interesante pero no me sirve, para excel 2007, igual voy a hacer la prueba. Es un componente no visual hay que recorrer a codigo la planilla. El adoconnect de delphi te deja usarlo como si fuera una tabla cualquiera, pero vemos que hacemos con esto

El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html Linux User #495070 http://miexperiencialinux.blogspot.com/

Reply by email

Anxo Vázquez
to Maxi

La opci�n de exportar la tabla al formato csv, no es m�s que un fichero txt, se adapta perfectamente a cualquier necesidad. S�lo tienes que leer el fichero.txt yo puedes asignar como quieras independientemente de la bd que uses.
Un saludo.[?]

El 14 de diciembre de 2011 16:41, Maxi <maximiliano.duarte en gmail.com>escribi�:

Show quoted text 26 lines
> Puedes leer los xls con fpspreadsheet: > > http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/fpspreadsheet/ Gracias a todos por contestar, lo que me pasate jose parece interesante pero no me sirve, para excel 2007, igual voy a hacer la prueba. Es un componente no visual hay que recorrer a codigo la planilla. El adoconnect de delphi te deja usarlo como si fuera una tabla cualquiera, pero vemos que hacemos con esto -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html Linux User #495070 http://miexperiencialinux.blogspot.com/ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20111214/71fd1ae7/attachment.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/png
Size: 569 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20111214/71fd1ae7/attachment.png>

Reply by email

Gastón Dall' Oglio
to Anxo Vázquez

Hola gente.
No he utilizado esas formas que han nombrado, pero quer�a agregar otra por ah� les sirve.
Hace varios a�os ya en Delphi (por lo que no recuerdo con que clase lo hice) tuve la necesidad de modificar el tipo de dato de algunas celdas de texto a fecha, y como eran muchas hice un peque�o programa que recorr�a el xml y modificaba algunos nodos. Creo que use algo relacionado con DOM. Para esto guardaba primero el documento excel como un xml (en aquella �poca .xmlx no era el formato por defecto a�n, sino el binario .xls). Ten� en cuenta que el .xlsx es un archivo comprimido, tenes que descomprimirlo (con 7zip por ejemplo) y en la subcarpeta "xl".

Por ejemplo esta info del excel:

meses ventas
enero 1000
febrero 150,9
marzo 1900
3050,9

se ve as�

*(xl/sharedStrings.xml)*

<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="5" uniqueCount="5">
<si>
<t>
meses
</t>
</si>
<si>
<t>
ventas
</t>
</si>
<si>
<t>
enero
</t>
</si>
<si>
<t>
febrero
</t>
</si>
<si>
<t>
marzo
</t>
</si>
</sst>

*xl/worksheets/sheet1.xml):*

<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships ">
<dimension ref="A1:B5"/>
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0">
<selection activeCell="B6" sqref="B6"/>
</sheetView>
</sheetViews>
<sheetFormatPr baseColWidth="10" defaultRowHeight="15"/> <sheetData>
<row r="1" spans="1:2">
<c r="A1" t="s">
<v>
0
</v>
</c>
<c r="B1" t="s">
<v>
1
</v>
</c>
</row>
<row r="2" spans="1:2">
<c r="A2" t="s">
<v>
2
</v>
</c>
<c r="B2">
<v>
1000
</v>
</c>
</row>
<row r="3" spans="1:2">
<c r="A3" t="s">
<v>
3
</v>
</c>
<c r="B3">
<v>
150.9
</v>
</c>
</row>
<row r="4" spans="1:2">
<c r="A4" t="s">
<v>
4
</v>
</c>
<c r="B4">
<v>
1900
</v>
</c>
</row>
<row r="5" spans="1:2">
<c r="B5">
<f>
SUM(B2:B4)
</f>
<v>
3050.9
</v>
</c>
</row>
</sheetData>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
</worksheet>

horrible trabajo no? :P
pero recuerdo que con el parser xml dom solo ten�a que pararme en un lugar (un nodo), pedirle sus nodos hijos, y despu�s era b�sicamente recorrer los nodos hijos y hacer algo similar hasta llegar a donde estaban los datos y su formato.

Saludos

2011/12/14 Anxo V�zquez <xanxov en esdebian.org>

Show quoted text 42 lines
La opci�n de exportar la tabla al formato csv, no es m�s que un fichero txt, se adapta perfectamente a cualquier necesidad. S�lo tienes que leer el fichero.txt yo puedes asignar como quieras independientemente de la bd que uses. Un saludo.[?] El 14 de diciembre de 2011 16:41, Maxi <maximiliano.duarte en gmail.com>escribi�: > Puedes leer los xls con fpspreadsheet: > > > > > http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/fpspreadsheet/ > > Gracias a todos por contestar, lo que me pasate jose parece > interesante pero no me sirve, para excel 2007, igual voy a hacer la > prueba. Es un componente no visual hay que recorrer a codigo la > planilla. El adoconnect de delphi te deja usarlo como si fuera una > tabla cualquiera, pero vemos que hacemos con esto > > -- > El que pregunta aprende, y el que contesta aprende a responder. > > No a la obsolecencia programada: > > http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html > > Linux User #495070 > http://miexperiencialinux.blogspot.com/ > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20111214/5cf45098/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/png
Size: 569 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20111214/5cf45098/attachment-0001.png>

Reply by email

Maximiliano Duarte
to Gastón Dall' Oglio

Al cliente que le estoy haciendo en importador, no puedo pedirles datos en que no sean excel o csv porque lo generan de otro soft que genera una liquidacion y tengo que meterlo en otro para hacer facturas a clientes. Con poder leer las celdas me sobra para pasarlos a una tabla temporal y de ah� procesar o corregir todo Enviado desde mi BlackBerry

Earlier message 8 lines
-----Original Message----- From: Gast�n Dall' Oglio <gaston.dalloglio en gmail.com> Date: Wed, 14 Dec 2011 17:23:05 To: Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> Reply-To: Spanish version of Lazarus List <lazarus-es en lists.lazarus.freepascal.org> Subject: Re: [Lazarus-es] Excel como origen de datos?

Reply by email

Gastón Dall' Oglio
to Maximiliano Duarte

Claro, por eso te dec�a que tomes el xlsx (formato com�n de excel desde hace unos a�os), que no es mas que un zip, con muchos achivos de texto adentro, la mayor�a de ellos son xml (sino todos, la verdad no lo revis�). As� que podr�as descomprimir esto a una carpeta temporal, y tomar los datos a una tabla temporal.
Despu�s de todo, no es que microsoft de bueno decidiera ahora usar archivos no-binarios, sino que la industria le exigi� esto (influenciado por otros productos como open office), que se pudieran utilizar herramientas externas para acceder a los datos contenidos en los archivos que sus productos generan. Es exactamente lo que estas por queriendo hacer, creo yo. Saludos.

El 14 de diciembre de 2011 17:56, Maximiliano Duarte < maximiliano.duarte en gmail.com> escribi�:

Show quoted text 26 lines
Al cliente que le estoy haciendo en importador, no puedo pedirles datos en que no sean excel o csv porque lo generan de otro soft que genera una liquidacion y tengo que meterlo en otro para hacer facturas a clientes. Con poder leer las celdas me sobra para pasarlos a una tabla temporal y de ah� procesar o corregir todo Enviado desde mi BlackBerry -----Original Message----- From: Gast�n Dall' Oglio <gaston.dalloglio en gmail.com> Date: Wed, 14 Dec 2011 17:23:05 To: Spanish version of Lazarus List< lazarus-es en lists.lazarus.freepascal.org> Reply-To: Spanish version of Lazarus List <lazarus-es en lists.lazarus.freepascal.org> Subject: Re: [Lazarus-es] Excel como origen de datos? _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20111214/d32ba5e3/attachment.html>

Reply by email

Maximiliano Duarte
to Gastón Dall' Oglio

Tal cual, voy a probar lo que me decis. Muy buen dato Gracias

Enviado desde mi BlackBerry

Earlier message 8 lines
-----Original Message----- From: Gast�n Dall' Oglio <gaston.dalloglio en gmail.com> Date: Wed, 14 Dec 2011 18:15:11 To: Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> Reply-To: Spanish version of Lazarus List <lazarus-es en lists.lazarus.freepascal.org> Subject: Re: [Lazarus-es] Excel como origen de datos?

Reply by email

Gastón Dall' Oglio
to Maximiliano Duarte

De nada Maximiliano.
Me desperto curiosidad, as� que busqu� y s�, ya esta en la wiki :) http://wiki.lazarus.freepascal.org/XML_Tutorial/es

Viendo r�pidamente, esto es lo que yo hac�a en Delphi.

Saludos.

2011/12/14 Maximiliano Duarte <maximiliano.duarte en gmail.com>

Show quoted text 23 lines
Tal cual, voy a probar lo que me decis. Muy buen dato Gracias Enviado desde mi BlackBerry -----Original Message----- From: Gast�n Dall' Oglio <gaston.dalloglio en gmail.com> Date: Wed, 14 Dec 2011 18:15:11 To: Spanish version of Lazarus List< lazarus-es en lists.lazarus.freepascal.org> Reply-To: Spanish version of Lazarus List <lazarus-es en lists.lazarus.freepascal.org> Subject: Re: [Lazarus-es] Excel como origen de datos? _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20111214/a6ae9930/attachment.html>

Reply by email