Qt & Ms Excel 2010 [gelöst]

Alles rund um die Programmierung mit Qt
Antworten
thc2_67
Beiträge: 16
Registriert: 28. August 2011 09:43

Qt & Ms Excel 2010 [gelöst]

Beitrag von thc2_67 »

Bitte um Hilfe!

Ich möchte in ein bestehendes MS-Excel File V2010 (mit makros) Daten wie zB Text und Zahlen eintragen.
Ich habe dazu einige Einträge gelesen komme leider auf keinen grünen Zweig.

Die Implemtierung soll via ActiveX passieren, das Excel-Sheet lässt sich samt der Makros problemlos öffnen, jedoch mit dem Eintragen von Daten (Zahlen und Text)
kommt es im Debugger Modus zu folgenden Fehler: "Der Prozess wurde nach Erhalt eines Signals vom Betriebssystem angehalten" - SIGSEGV, Bedeutung: Segmentation fault.

Die Implementierung ist wie folgt:
*.h

Code: Alles auswählen

#ifndef SPIEL_REPORT_EXCEL_H
#define SPIEL_REPORT_EXCEL_H

#include <QObject>
#include <ActiveQt/QAxBase>
#include <ActiveQt/QAxObject>

#include "config.h"

class Spiel_Report_Excel : public QObject
{
    Q_OBJECT
public:
    Spiel_Report_Excel(QObject *parent = 0);

    void generate_report();

signals:

public slots:

protected:
    QAxObject *excel;
    Config *ishConfig, *rescueGame;
};

#endif // SPIEL_REPORT_EXCEL_H
*.cpp

Code: Alles auswählen

#include <QFile>

#include "spiel_report_excel.h"
#include "defines.h"

Spiel_Report_Excel::Spiel_Report_Excel(QObject *parent) :
    QObject(parent)
{

    ishConfig = new Config(CFG_MAIN_FILENAME);
    rescueGame = new Config(CFG_RESCUE_GAME_FILE);

    ishConfig->loadfromFile();
    rescueGame->loadfromFile();
}

void Spiel_Report_Excel::generate_report()
{
    excel = new QAxObject("Excel.Application",0);
    excel->setProperty("DisplayAlerts", false);
    excel->setProperty("Visible",true);

    QString datei = ishConfig->getValue(CFG_ISHMANAGER_DIR) + "/" + CFG_GAME_REPORT_TEMPLATE;
    QFile * file = new QFile(datei);
    QAxObject *workbooks = excel->querySubObject("Workbooks");
    if(file->exists()) {
        workbooks->dynamicCall("Open (const QString&)", datei);
        QAxObject *worksheet = workbooks->querySubObject("Worksheets(int)", 1);
        QAxObject *cell = worksheet->querySubObject("Cells(Int,Int)",4,13); //HIER KOMMT ES ZUM FEHLER WIE OBEN BESCHRIEBEN
        int intVal;
    }
}
BIn für jeden hilfreichen Input dankbar!

LG
thc2_67
Zuletzt geändert von thc2_67 am 12. August 2012 14:17, insgesamt 1-mal geändert.
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: Qt & Ms Excel 2010

Beitrag von Troll.Soft »

Hallo,
ich habe mal Daten in Exceltabellen eingefügt. Hat funktioniert!! Folgende Software macht das:
BasicExcel - A Class to Read and Write to Microsoft Excel
By Yap Chun Wei | 6 Aug 2006
findest Du im Internet unter
tschüß
Troll.Soft
Antworten