Eine Frage der Umsetzung: oocalc -> xml -> QT

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
EtSting
Beiträge: 3
Registriert: 7. September 2014 21:11

Eine Frage der Umsetzung: oocalc -> xml -> QT

Beitrag von EtSting » 19. November 2014 12:24

Hallo,

ich baue gerade ein kleines Projekt welches verschiedene Worte über ein QT Interface in eine DB (mysql) einträgt. Das funktioniert soweit ganz gut. Ich habe aber festgestellt das die Daten die ich zu erheben suche teilweise schon von jemand anderen erhoben worden sind. Da das nur für mich ist (und es sowieso ein Freund von mir ist), ist es ja ok wenn ich die zusätzlich verwende.

Er speichert diese Daten aber in einem Excel Dokument. Was ich brauche ist so eine Art Pushbutton in meinem interface wie "load from file" oder so. Wo ich also drauf klicke und der mir automatisch die Daten in die LineEdits einträgt.

Ich weiß allerding snicht welche Methoden QT für so ein Vorhaben bietet. Meines erachtens nach müsste ich die Daten mit OpenOffice Calc laden, in ein .html file speichern (es scheint kein XML zu können... O_o) und dann für QT den Code schreiben wie "zeile sowieso trage in feld sowieso ein".

Die Dateien sehen immer gleich aus - also zumindest vom aufbau her - so das zB. in Zelle A1 auch immer die gleichen Daten vorhanden sind. Ein Beispiel aus einer Datei (html):

Code: Alles auswählen

<BODY TEXT="#000000">
<TABLE CELLSPACING="0" COLS="5" BORDER="0">
        <COLGROUP SPAN="2" WIDTH="153"></COLGROUP>
        <COLGROUP WIDTH="50"></COLGROUP>
        <COLGROUP SPAN="2" WIDTH="153"></COLGROUP>
   [...]
        <TR>
                <TD STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000" HEIGHT="16" ALIGN="CENTER" VALIGN=MIDDLE BGCOLOR="#FFFF00" SDNUM="1031;1031;Standard"><B>Überschrift Zeile 1</B></TD>
                <TD STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-right: 1px solid #000000" ALIGN="CENTER" VALIGN=MIDDLE BGCOLOR="#FFFF00" SDNUM="1031;1031;Standard"><B>Überschrift Zeile 2</B></TD>
                <TD STYLE="border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN="CENTER" VALIGN=MIDDLE SDNUM="1031;1031;Standard"><B><BR></B></TD>
                <TD STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000" ALIGN="CENTER" VALIGN=MIDDLE BGCOLOR="#FFFF00" SDNUM="1031;1031;Standard"><B>Überschrift Zeile 3</B></TD>
                <TD STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-right: 1px solid #000000" ALIGN="CENTER" VALIGN=MIDDLE BGCOLOR="#FFFF00" SDNUM="1031;1031;Standard"><B>Überschrift Zeile 4I</B></TD>
        </TR>        
<TR>
                <TD STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" HEIGHT="16" ALIGN="CENTER" VALIGN=MIDDLE SDNUM="1031;1031;Standard"><FONT SIZE=1>Daten Zeile 1</FONT></TD>
                <TD STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN="CENTER" VALIGN=MIDDLE SDNUM="1031;1031;Standard"><FONT SIZE=1>Daten Zeile 2</FONT></TD>
                <TD STYLE="border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN="CENTER" VALIGN=MIDDLE SDNUM="1031;1031;Standard"><FONT SIZE=1><BR></FONT></TD>
                <TD STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN="CENTER" VALIGN=MIDDLE SDNUM="1031;1031;Standard"><FONT SIZE=1>Daten Zeile 3</FONT></TD>
                <TD STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN="CENTER" VALIGN=MIDDLE SDNUM="1031;1031;Standard"><FONT SIZE=1>Daten Zeile 4</FONT></TD>
        </TR>


Meine Frage ist nun: Welche Möglichkeiten bietet mir da QT und welche der Möglichkeiten ist am einfachsten / besten umzusetzen? Es gäbe da einen Haufen XML funktionen, Datei-operationen (fopen), etc etc.
Und wenn ihr mir zu dem XML weg raten würdet, gäbe es da nicht schon ein tool was mir automatisch alle Dateien eines Verzeichnisses von Excel in XML konvertieren kann (oder zumindest eines, was die Zellennamen angibt, nicht diesen HTML-Schrott wie im Beispiel)?

lg

nebler
Beiträge: 51
Registriert: 9. Juli 2009 15:26

Re: Eine Frage der Umsetzung: oocalc -> xml -> QT

Beitrag von nebler » 25. November 2014 19:56

Hallo EtSting,

das neue Office Datenformat ist das OpenDocument Format (wenn ich mich nicht ganz täusche).
Das ist technisch gesehen nur eine ZIP Datei (*.xlsx) mit vielen logisch strukturierten XML Dokumenten darin.

Also einfach nur mit QuaZip oder ähnliches Bibliothek die passende XML Datei entpacken.
Die XML Datei parsen und das rausfiltern was Du brauchst.

Somit brauchst die Konvertierung nicht vornehmen. :-)

Einfach die XLSX Datei mit 7zip oder ähnliches entpacken und anschauen.
Irgendwo wirds wohl auch ne Definition geben, wie die Dateien strukturiert sind.

Viele Grüße

Antworten