gpt4 book ai didi

multithreading - 使用 Qt 进行多线程 Excel 处理?

转载 作者:行者123 更新时间:2023-12-04 06:52:36 24 4
gpt4 key购买 nike

我正在尝试处理 Excel 工作表,以使用 Qt (4.6.3) 对其中的数据进行一些处理。
我试过使用 QAxWidget excel("Excel.Application")如使用 here .

我首先尝试以一种简单的方法使用它,一切正常,但 GUI 卡住了一段时间,所以我尝试在不同的 QThread 中实现它。 .

有人说,不允许使用来自 QWidget 的继承类。在主线程之外的其他线程中。
我也试过这个 way ,但无论如何都会出现运行时错误。

这是我的代码片段:

void MainDialog::extractData()
{
QAxWidget excel("Excel.Application");
excel.setProperty("Visible", false);

QAxObject * workbooks = excel.querySubObject("WorkBooks");
workbooks->dynamicCall("Open (const QString&)", ui->lineEditAdress->text());
QAxObject * workbook = excel.querySubObject("ActiveWorkBook");
QAxObject * worksheet = workbook->querySubObject("Worksheets(int)", 1);

// ... some work here...

workbook->dynamicCall("Close (Boolean)", false);
excel.dynamicCall("Quit (void)");
}

我做错了什么?有没有更好的方法来完成工作?比 ActiveX 更好的主意?

谢谢。

编辑:
正如 Raiv 所说,我替换了 QAxWidget来自 QAxObject
只需在线程的 run() 中调用:
// ...
CoInitialize(0);
QAxObject excel("Excel.Application");
// ...

它工作正常。

最佳答案

尝试使用 QAxObject 而不是 QAxWidget,它会在另一个线程中工作。只是不要忘记在那里调用 CoInitialize() 。

关于multithreading - 使用 Qt 进行多线程 Excel 处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693202/

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