[Lazarus-es] Excel como origen de datos?

Gastón Dall' Oglio gaston.dalloglio en gmail.com
Mie Dic 14 21:23:05 CET 2011


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>

> 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-ide.org/pipermail/lazarus-es/attachments/20111214/5cf45098/attachment-0002.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 328.png
Type: image/png
Size: 569 bytes
Desc: no disponible
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20111214/5cf45098/attachment-0002.png>


More information about the Lazarus-es mailing list