C++ 如何从Qt应用程序驱动excel窗口
在我的Qt应用程序中,我有一个窗口,其中包含一个表,该表使用来自后端服务器的数据进行动态更新。我需要我的窗口能够打开excel实例,将表格中的所有数据插入excel窗口,并在表格中的数据更新时更新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
这是可能实现的吗?如果是这样,我如何才能做到这一点?我不介意只在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");