【问题标题】:How to Apply a color to excel cell using Qt?如何使用 Qt 将颜色应用于 Excel 单元格?
【发布时间】:2012-02-21 23:59:56
【问题描述】:

我是 Qt 新手。我已经编写了一个程序来从 excel 文件中读取和写入数据。

    void Excel::Color(const QString& Sheet_Name,const QString& cell,const QString& color_Name) { 
  QAxObject* Worksheet = activeWorkbook->querySubObject("WorkSheets(const QString&)",Sheet_Name); 
  QAxObject* Cell_Range = Worksheet->querySubObject("Range(const QString&)",cell ); 
} 

现在我需要对特定单元格应用颜色。有没有可能做到这一点?

【问题讨论】:

  • void Excel::Color(const QString& Sheet_Name,const QString& cell,const QString& color_Name) { QAxObject* Worksheet = activeWorkbook->querySubObject("WorkSheets(const QString&)",Sheet_Name); QAxObject* Cell_Range = Worksheet->querySubObject("Range(const QString&)",cell ); } !!现在我需要为 sheet_Name 中指定的工作表中的单元格设置特定颜色。 !!如何设置颜色?

标签: c++ excel qt automation qaxobject


【解决方案1】:

作为 的爱好者,我过去做过办公自动化。我对 Qt 感觉不太舒服,但我的盒子上安装了 Qt Creator 2.4.0 和最新的 Qt 框架:它很有前途。

这是一个与单元格着色更相关的 VBA sn-p,

Cells(1, “D”).Interior.Color = RGB(0, 255, 255)
Cells(1, “D”).Borders.Weight = xlThick
Cells(1, “D”).Borders.Color = RGB(0, 0, 255)

您还可以访问这个有趣的thread,与利用 QAxWidget 处理 Excel 文件相关。

编辑:

OP 最终建立了一个合适的 Qt 解决方案,如下所示:

QAxObject* Interior = currentCell->querySubObject("Interior"); 
Interior->setProperty("ColorIndex",Index_val); 

【讨论】:

  • 我希望它带有 Qt 属性。那我该怎么办?能解释清楚吗?
  • 尝试类似 Cell_Range->setProperty("Value", QVariant(1234));
  • QAxObject* Interior = currentCell->querySubObject("Interior");内部->setProperty("ColorIndex",Index_val);它工作正常!!!!谢谢menjaraz!
  • 不客气。不要忘记研究Excel Object Model Reference 以更进一步。我将相应地编辑答案,以便它可以轻松地为任何访问者服务。如果觉得我的回答对您有帮助,您可以接受。
【解决方案2】:

如何获取currentCell对象:

  QAxObject* Interior = currentCell->querySubObject("Interior"); 
  Interior->setProperty("ColorIndex",Index_val); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    相关资源
    最近更新 更多