C++ 如何从Qt应用程序驱动excel窗口

C++ 如何从Qt应用程序驱动excel窗口,c++,excel,qt,C++,Excel,Qt,在我的Qt应用程序中,我有一个窗口,其中包含一个表,该表使用来自后端服务器的数据进行动态更新。我需要我的窗口能够打开excel实例,将表格中的所有数据插入excel窗口,并在表格中的数据更新时更新excel单元格 这是可能实现的吗?如果是这样,我如何才能做到这一点?我不介意只在Windows上运行的依赖于平台的解决方案。这是我最后使用的代码 打开Excel: QAxObject* excel = new QAxObject("Excel.Application", 0); excel->d

在我的Qt应用程序中,我有一个窗口,其中包含一个表,该表使用来自后端服务器的数据进行动态更新。我需要我的窗口能够打开excel实例,将表格中的所有数据插入excel窗口,并在表格中的数据更新时更新excel单元格


这是可能实现的吗?如果是这样,我如何才能做到这一点?我不介意只在Windows上运行的依赖于平台的解决方案。

这是我最后使用的代码

打开Excel:

QAxObject* excel = new QAxObject("Excel.Application", 0);
excel->dynamicCall("SetVisible(bool)", true);
读取单元格值:

QAxObject* workbooks = excel->querySubObject("Workbooks");
QAxObject* workbook = workbooks->querySubObject("Open(const QString&)", "D:\\a.xlsx");
QAxObject* worksheet = workbook->querySubObject("Worksheets(int)", 1);
QAxObject* usedrange = worksheet->querySubObject("UsedRange");
QAxObject* rows = usedrange->querySubObject("Rows");
QAxObject* columns = usedrange->querySubObject("Columns");
int intRowStart = usedrange->property("Row").toInt();
int intColStart = usedrange->property("Column").toInt();
int intCols = columns->property("Count").toInt();
int intRows = rows->property("Count").toInt();
QAxObject* cell;
for (int i = intRowStart; i < intRowStart + intRows; i++)
{
    for (int j = intColStart; j < intColStart + intCols; j++)
    {
        cell = excel->querySubObject("Cells(Int, Int)", i, j);
        QVariant cellValue = cell->dynamicCall("value");
        qDebug() << cellValue.toString();
    } 
}

注意:在执行任何这些操作之前,请记住创建QApplication。我花了相当多的时间来找出什么是错误的不做这件事。

有很多可能的解决方案与Excel使用C++,例如MFC功能或外部LIBS。如果你在谷歌
excel
c++
cell->setProperty("Value", "somevalue");