爱新觉罗二狗 2023-08-31 11:03 采纳率: 40%
浏览 5

qt中使用QAxObject读取excel文件可以读取到单元格的背景颜色吗

qt中使用QAxObject读取excel文件可以读取到单元格的背景颜色吗
网上教程都只有设置颜色的

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-31 14:05
    关注

    【以下回答由 GPT 生成】

    回答:

    可以通过QAxObject的Range对象的Interior属性来获取单元格的背景颜色。

    下面是一个示例代码, 借助于VBA,在Qt中通过QAxObject读取Excel文件,并获取A1单元格的背景颜色:

    #include <QAxObject>
    #include <QDebug>
    
    int main()
    {
        QAxObject excel("Excel.Application");
        excel.setProperty("Visible", false);
    
        QAxObject *workbooks = excel.querySubObject("Workbooks");
        QAxObject *workbook = workbooks->querySubObject("Open(const QString&)", "yourfile.xlsx");
    
        QAxObject *sheets = workbook->querySubObject("Sheets");
        QAxObject *sheet = sheets->querySubObject("Item(int)", 1); // 第1个Sheet
    
        QAxObject *range = sheet->querySubObject("Range(const QString&)", "A1");
        QAxObject *interior = range->querySubObject("Interior");
    
        QVariant backgroundColor = interior->property("Color");
    
        qDebug() << "背景颜色:" << backgroundColor.toString();
    
        delete interior;
        delete range;
        delete sheet;
        delete sheets;
        delete workbook;
        delete workbooks;
    
        excel.dynamicCall("Quit()");
    
        return 0;
    }
    

    注意:上述代码需要在编译时链接Microsoft Excel相关库文件。

    希望对你有所帮助!如果还有其他问题,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月31日