爱新觉罗二狗 2023-08-31 14:43 采纳率: 40%
浏览 4

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

qt中使用QAxObject读取excel文件可以读取到单元格的背景颜色吗
网上教程都只有设置颜色的
font->setProperty("Color", QColor(255, 0, 0));

  • 写回答

1条回答 默认 最新

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

    【以下回答由 GPT 生成】

    在Qt中,可以通过使用QAxObject来访问Excel文件并获取单元格的背景颜色。下面是具体的解决方案:

    1. 首先,你需要创建一个QAxObject对象来连接Excel应用程序。可以使用QAxObject的构造函数来完成这一步骤。
    QAxObject *excelApp = new QAxObject("Excel.Application");
    
    1. 使用QAxObject对象的setProperty方法来设置打开文件的方式,例如只读模式。
    excelApp->setProperty("Visible", false); // 隐藏Excel应用程序,提高速度
    excelApp->setProperty("DisplayAlerts", false); // 关闭警告对话框
    
    1. 使用QAxObject对象的querySubObject方法打开工作簿。
    QAxObject *workbooks = excelApp->querySubObject("Workbooks");
    QAxObject *workbook = workbooks->querySubObject("Open(const QString&)", filePath);
    
    1. 选择相应的工作表。
    QAxObject *sheets = workbook->querySubObject("Sheets");
    QAxObject *sheet = sheets->querySubObject("Item(int)", sheetIndex);
    
    1. 获取特定单元格的背景颜色。需要先获取Range对象,然后使用Interior属性获取背景颜色。
    QAxObject *range = sheet->querySubObject("Range(const QString&)", cellPosition);
    QAxObject *interior = range->querySubObject("Interior");
    QVariant backgroundColor = interior->property("Color");
    
    1. 将背景颜色转换为QColor对象(可选)。
    QColor cellColor = QColor::fromRgb(static_cast<QRgb>(backgroundColor.toUInt()));
    
    1. 清理内存,在使用完对象后需要释放内存。
    range->dynamicCall("Release()");
    interior->dynamicCall("Release()");
    sheet->dynamicCall("Release()");
    workbook->dynamicCall("Close()");
    excelApp->dynamicCall("Quit()");
    delete range;
    delete interior;
    delete sheet;
    delete workbook;
    delete sheets;
    delete workbooks;
    delete excelApp;
    

    注意:上述为基本的读取_excel文件并获取背景颜色的步骤,具体的用法和细节需要根据实际情况进行调整。



    【相关推荐】



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

报告相同问题?

问题事件

  • 创建了问题 8月31日

悬赏问题

  • ¥20 python爬虫遇到空文本取不出来
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入