gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 02:35:44 27 4
gpt4 key购买 nike

在我的 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();
}
}

写入单元格值

cell->setProperty("Value", "somevalue");

注意:请记住在执行任何这些操作之前创建 QApplication。我花了相当多的时间来弄清楚不这样做有什么问题。

关于c++ - 如何从 Qt 应用程序驱动 excel 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com