• vsto excel 快速查找所有标黄的格子


    在 VSTO (Visual Studio Tools for Office) 加载项中,你可以使用 C# 代码快速查找并处理 Excel 工作表中所有被标记为黄色的单元格。以下是一个示例代码,展示如何遍历工作表并查找所有背景颜色为黄色的单元格。

    ### 示例代码

    1. using System;
    2. using System.Linq;
    3. using Excel = Microsoft.Office.Interop.Excel;
    4. using Office = Microsoft.Office.Core;
    5. namespace YourVSTOAddIn
    6. {
    7.     public partial class ThisAddIn
    8.     {
    9.         private void ThisAddIn_Startup(object sender, System.EventArgs e)
    10.         {
    11.             this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);
    12.         }
    13.         void Application_WorkbookOpen(Excel.Workbook Wb)
    14.         {
    15.             Excel.Worksheet activeWorksheet = ((Excel.Worksheet)this.Application.ActiveSheet);
    16.             FindYellowCells(activeWorksheet);
    17.         }
    18.         private void FindYellowCells(Excel.Worksheet worksheet)
    19.         {
    20.             Excel.Range usedRange = worksheet.UsedRange;
    21.             Excel.Range yellowCells = usedRange.SpecialCells(Excel.XlCellType.xlCellTypeAllFormatConditions);
    22.             foreach (Excel.Range cell in yellowCells)
    23.             {
    24.                 if (cell.Interior.Color == Excel.XlRgbColor.rgbYellow)
    25.                 {
    26.                     System.Diagnostics.Debug.WriteLine($"Yellow cell found at: {cell.Address}");
    27.                 }
    28.             }
    29.         }
    30.         private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    31.         {
    32.             // 处理加载项关闭事件
    33.         }
    34.         private void InternalStartup()
    35.         {
    36.             this.Startup += new System.EventHandler(ThisAddIn_Startup);
    37.             this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
    38.         }
    39.     }
    40. }
    41. ```

    ### 解释

    1. 事件处理程序:
        - `ThisAddIn_Startup`: 在加载项启动时附加 `WorkbookOpen` 事件处理程序。
        - `Application_WorkbookOpen`: 在工作簿打开时调用 `FindYellowCells` 方法。
        - `ThisAddIn_Shutdown`: 在加载项关闭时处理任何必要的清理工作。

    2. 查找黄色单元格:
        - `FindYellowCells` 方法遍历工作表的 `UsedRange`(即当前使用的单元格范围)。
        - 使用 `SpecialCells` 方法查找所有格式化的单元格。
        - 检查每个单元格的背景颜色,如果是黄色(`Excel.XlRgbColor.rgbYellow`),则记录该单元格地址。

    ### 注意事项

    - 性能:遍历和检查大范围内的单元格可能会影响性能。建议在处理大数据集时优化代码。
    - 错误处理:代码中未包括异常处理。建议在生产代码中添加适当的错误处理。
    - 颜色匹配:代码中的颜色匹配是基于 RGB 值。确保你使用的黄色是 `Excel.XlRgbColor.rgbYellow`。

  • 相关阅读:
    【译】在 ASP.NET 和 ASP.NET Core 之间共享代码
    【6. N 字形变换】
    Neo4J中构建的知识图谱,如何使用推理算法
    ECharts实现数据可视化入门教程(超详细)
    爬虫-从入门到入狱
    Python:类的__dict__属性
    《009.SpringBoot之汽车租赁系统》
    华北工控EMB3581 瑞芯微Rockchip RK3568,python部署rknn_toolkit_lite2
    灵活运用Vue指令:探究v-if和v-for的使用技巧和注意事项
    【leetcode】2578.最小和分割
  • 原文地址:https://blog.csdn.net/nbspzs/article/details/139674030