• 获取 Excel 单元格的条件格式是否成立及其改变后的属性(如背景颜色)


    获取 Excel 单元格的条件格式是否成立及其改变后的属性(如背景颜色),直接通过 VSTO API 是有挑战的,因为条件格式的实际应用效果在 Excel 的内部逻辑中,并不直接暴露给外部 API。尽管如此,可以通过一些工作方式来判断条件格式的成立,并获取单元格的最终显示效果。

    以下是一个更直接的方法来获取条件格式应用后的背景色。这个方法依赖于 Excel 的显示属性,而不是条件格式的定义。

    使用 C# VSTO 获取单元格条件格式的实际背景颜色

     
    

    csharp

    复制代码

    using Excel = Microsoft.Office.Interop.Excel;

    using System.Runtime.InteropServices;

    public void GetActualCellColor()

    {

    // 假设已经有一个Excel应用程序对象

    Excel.Application excelApp = Globals.ThisAddIn.Application;

    // 获取当前激活的工作簿和工作表

    Excel.Workbook workbook = excelApp.ActiveWorkbook;

    Excel.Worksheet worksheet = workbook.ActiveSheet; // 假设我们要检查的单元格在A1 Excel.Range cell = worksheet.get_Range("A1"); // 获取条件格式集合 Excel.FormatConditions conditions = (Excel.FormatConditions)cell.FormatConditions;

    // 获取单元格实际显示的背景色

    int actualColor = cell.DisplayFormat.Interior.Color;

    Console.WriteLine($"单元格 A1 的实际背景色: {actualColor}");

    }

    解释

    1. 获取 Excel 对象:首先获取 Excel 应用程序对象和当前激活的工作簿及工作表。
    2. 获取单元格:获取需要检查的单元格(例如 "A1")。
    3. 获取条件格式集合:通过 cell.FormatConditions 获取条件格式集合。
    4. 获取实际显示的背景色:使用 cell.DisplayFormat.Interior.Color 获取单元格实际显示的背景色。

    注意事项

    • cell.DisplayFormat 是 Excel 2010 及以后的版本中引入的属性,它表示单元格在当前格式条件下的显示格式。因此,它会反映条件格式的应用效果。
    • 确保 Excel 文档已经应用了所有的条件格式。如果需要,可以调用 worksheet.Calculate() 来强制计算条件格式。

    这个方法利用 DisplayFormat 属性来获取单元格的实际显示属性,可以有效地获取条件格式应用后的结果,包括背景颜色。如果需要进一步处理或判断其他条件格式属性,可以扩展上述方法。希望这段代码能帮助你解决问题。如果有其他问题或需要进一步的帮助,请随时提出。

  • 相关阅读:
    使用数组实现队列
    SSM健康小程序
    姿态分析开源工具箱MMPose安装及使用示例(2d face landmark detection)
    计算机脚本的概念,如何编写、使用脚本 (Script)?
    程序员转架构之路,竟被阿里用作内部晋升参考
    Vue中使用vue-router
    Ansible 快速入门到放弃
    条件期望:Conditional Expectation 举例详解之入门之入门之草履虫都说听懂了
    DI93a HESG440355R3 通过其Achilles级认证提供网络安全
    JUC并发编程:第二季
  • 原文地址:https://blog.csdn.net/lijingguang/article/details/139294662