首页 > 解决方案 > QAxWidget 正在使用中,在 QT creator 中读取 Excel 时出现错误

问题描述

环境是Windows。它正在开发一个程序来读取 xls、xlsx 文件。
我的电脑工作正常,但其他电脑有错误。

**<Error on another computer - error log>**
QAxBase::setControl: requested control Excel.Application could not be instantiated

下面是正在使用的代码。

test.cpp
QVariant CustomExcel::readExcel(QString path)
    {
// read xls,xlsx file
        m_path = path;
        QAxObject *excel = new QAxObject;
        excel->setControl("Excel.Application",0);
        if (excel->isNull())
            return QVariant();
        excel->setProperty("Visible", false);
        QAxObject *workbooks = excel->querySubObject("WorkBooks");
        if (!workbooks)
            return QVariant();
        QAxObject *workbook = workbooks->querySubObject("Open(QString, QVariant)", m_path);
        if (!workbook)
            return QVariant();
        QAxObject *sheets = excel->querySubObject("ActiveWorkBook");
        if (!sheets)
            return QVariant();
        QAxObject *sheet = sheets->querySubObject("Sheets(int)", 1);
        if (!sheet)
            return QVariant();
        QVariant var;
        if (sheet != nullptr && !sheet->isNull())
        {
            QAxObject *usedRange = sheet->querySubObject("UsedRange");
            if (nullptr == usedRange || usedRange->isNull())
                return QVariant();
    
            var = usedRange->dynamicCall("Value");
            delete usedRange;
        }
        workbooks->dynamicCall("Close()");
        excel->dynamicCall("Quit()");
        return var;
    }
.pro
QT += core gui network sql xml charts axcontainer

我不明白问题是什么.....让我知道是否有其他方法。;)

标签: c++excelqt

解决方案


推荐阅读