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

  • 相关阅读:
    Red Hat 8 重置root管理员密码
    百度智能云千帆AppBuilder升级!开放多源模型接入,思考模型再次加速!
    如何在VScode和Jetbrain上使用备受争议的GitHub Copilot
    Go语言面试题
    BGP学习笔记
    openssl+sha256开发实例(C++)
    ubuntu 16.04成功安装meteor
    【Linux】线程同步
    1.3 Multi ElasticSearch Head插件基本操作
    前端自学需要把大量时间放在 HTML、CSS 吗?
  • 原文地址:https://blog.csdn.net/lijingguang/article/details/139294662