Seite 1 von 1
Excel Zellen formatieren
Verfasst: 25. November 2010 13:29
von oldmanII
Hallo,
ich komme leider nicht weiter.
Ich muss von Qt aus eine Excel-Datei erzeugen und muss auch die Zellen formatieren. Bekomme dies allerdings nicht hin.
Etwas Hilfe wäre nett.
An code habe ich bisher folgendes:
Code: Alles auswählen
QAxObject * range;
QAxWidget excel("Excel.Application");
excel.setProperty("Visible", true);
QAxObject * workbooks = excel.querySubObject("WorkBooks");
// Anlegen eines Workbook
workbooks->dynamicCall("Add ()");
QAxObject * workbook = excel.querySubObject("ActiveWorkBook");
// Auswahl des ersten Tabellenblattes
QAxObject * worksheet = workbook->querySubObject("Worksheets(int)", 1);
worksheet->setProperty("Name", "Logger Data");
range = worksheet->querySubObject("Cells(1,1)");
range->setProperty("Value", "TAG");
// An dieser Stelle würde ich gerne die Zelle formatieren!
// Text zentriert, Text bold, Zellenbreite ändern, Kategorie definieren
workbook->dynamicCall("Close (Boolean)", false);
excel.dynamicCall("Quit (void)");
besten Dank im voraus
oldman
Verfasst: 27. November 2010 12:41
von Troll.Soft
Hallo,
hier mal ein paar nützliche Links zum Thema Excel.
Leider findet sich zum Thema Zellen formatieren nur der Hinweis, das sei doch recht schwierig.
Ich werde demnächst die Idee testen, einer bereits formatierten Zelle neue Daten unterzujubeln. Das wichtigste, die Daten selbst, geht zum Glück.
tschüß
Troll.Soft
http://www.qtforum.org/article/22557/ac ... excel.html
http://www.winfaq.de/faq_html/Content/t ... ip0566.htm
http://www.codeproject.com/KB/office/BasicExcel.aspx
Verfasst: 29. November 2010 14:12
von bst
Auch Hallo,
Code: Alles auswählen
range->setProperty("HorizontalAlignment", -4108); // Zentrieren
range->querySubObject("Font")->setProperty("Bold", true); // Fett
worksheet->querySubObject("Columns(1)")->setProperty("ColumnWidth", 20); // Spaltenbreite setzen
workbook->dynamicCall("SaveAs (const QString&)", QString("e:/test/qttest2.xls")); // speichern
Was meinst Du mit "Kategorie definieren" ?
cu, Bernd
Verfasst: 30. November 2010 09:31
von oldmanII
Vielen Dank an euch beide.
Ich hatte mich am Freitag noch einmal rangesetzt, da noch keine Resonanz da war und war sogar erfolgreich. Ich hatte leider nicht mehr daran gedacht, dies hier auch kund zu tun.
Als generellen Hinweis kann ich noch folgendes geben:
Mit folgendem Code kann man sich die Interface der einzelnen Klassen ausgeben lassen. Als ich diese hatte war es kein weiter Weg mehr zur Lösung.
Code: Alles auswählen
QAxObject* excel = new QAxObject( "Excel.Application", 0 );
QFile file1("c://exelHlp.html");
file1.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream out(&file1);
out << excel->generateDocumentation();
file1.close();
oldman
Re: Excel Zellen formatieren
Verfasst: 23. August 2012 13:06
von Marcus Breuer
Hallo oldman,
ich versuche mich im Moment auch an der ganzen Geschichte und habe einige Fragen dazu. Hoffe, dass es nicht zu lange her ist.
Ich habe Deine/Eure Quelltexte mal ausprobiert und mir auch die HTML Datei erzeugt. Ich würde nur gerne wissen, wie kommt Ihr bspw.
in
Code: Alles auswählen
workbooks->dynamicCall("Add ()");
QAxObject * worksheet = workbook->querySubObject("Worksheets(int)", 1);
an das "Worksheets(int)", oder das "Add()"? Ich habe in der HMTL-Doku nichts derartiges gefunden oder bin schlicht zu blöd dafür. Aber wenn Du/Ihr mir
kurz sagen könntet, wo Ihr das herholt, dann wäre ich sehr dankbar.
Beste Grüße,
Marcus
Re: Excel Zellen formatieren
Verfasst: 23. August 2012 14:11
von bst
Hi Marcus,
Du kannst Dir die Sourcen der Schnittstelle auch mit dem QT-Tool dumpcpp erstellen. Rufe mal "dumpcpp -h" auf.
Die benötigten Aufrufparameter findest Du dann (nicht ganz einfach) in der Header-Datei.
Oder aber Du schaust in der Excel-VBA-Hilfe nach welche Parameter die Funktion erwartet.
Worksheets ist eine Collection von Objekten vom Typ Worksheet. Für alle Collections gibt es denn immer zwei Zugriffsmöglichkeiten, über den Index oder über den Namen.
HTH, Bernd
Re: Excel Zellen formatieren
Verfasst: 23. August 2012 15:04
von Marcus Breuer
Hallo Bernd,
vielen Dank für deine schnelle Antwort. Damit sollte ich etwas weiterkommen. Ansonsten schreibe ich einfach nochmal.
Beste Grüße,
Marcus
Re: Excel Zellen formatieren
Verfasst: 6. Mai 2013 13:08
von SvenP.
Hallo!
Zu Excel habe ich auch hier
http://www.excel-helfer.de/excel-beding ... erten.html eine ganz hilfreiche Seite gefunden!
Lg Sven