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
Mailing lists / lazarus-es / 2011-12
Excel como origen de datos?
11 messages · 7 people ·
- GGastón Dall' Oglio 3
- MMaxi 2
- MMaximiliano Duarte 2
- AAnxo Vázquez 1
- CClaudio Romero 1
- JJosé Mejuto 1
- +1 more
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
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
El 14/12/2011 09:39 a.m., Claudio Romero escribi�:
Show quoted text 11 lines
otra cosa es que puede exportar ese xls a csv y luego cargalo desde lazarus a "mano" o capaz que hay alg�n componente....
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/
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
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
------------ 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>
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
------------ 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>
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
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
------------ 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>
Tal cual, voy a probar lo que me decis. Muy buen dato Gracias
Enviado desde mi BlackBerry
Earlier message 8 lines
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
------------ 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>
