c# - 您能否以编程方式检测 Excel 文档中的文本颜色并仅修改具有特定颜色和字体样式的文本的单元格?

标签 c# .net excel

我有一个需求,需要根据多个规则擦洗一个excel文档;其中之一是以编程方式删除给定列中所有带有红色文本和删除线字体样式的单元格。使用 Microsoft.Office.Interop.Excel 库在 C# 中访问 excel 文档后,有没有办法检测单元格文本的颜色和应用的字体样式,如果文本为红色且带有删除线样式,则删除该单元格?

public static void GetExcelFile() {
        //Establish COM Objects
        Excel.Application excelApp = new Excel.Application();
        Excel.Workbook excelWorkBook = excelApp.Workbooks.Open(@"\MyExcelBook.xlsx");
        Excel._Worksheet excelWorkSheet = excelWorkBook.Sheet[1];
        Excel.Range excelRange = excelWorkSheet.UsedRange;

        //Retrieve Column E
        object[] columnE = excelWorkSheet.Range["E"].Values2;

        //Scrub Column E
        //Remove expired codes (signified by red font and strikethrough)

        //Remove  Whitespace
        string trColumnE = columnE.ToString();
        string[] strColumnE = trColumnE.Replace(" ", "").Split(',');

最佳答案

在检索之前你可以检查如下:

 if (excelWorkSheet.Range["E"].Font.Strikethrough == true && excelWorkSheet.Range["E"].Interior.Color = 255)
            excelWorkSheet.Range["E"].Value == "";

关于c# - 您能否以编程方式检测 Excel 文档中的文本颜色并仅修改具有特定颜色和字体样式的文本的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40898518/

相关文章:

c# - UnderlyingSystemType 何时与当前 Type 实例不同

.net - 为什么这个简单的远程处理示例可以在我的笔记本电脑上运行,但不能在我的台式机上运行?

algorithm - 需要帮助在算法中表达列

excel - 如何在 Outlook 中获取任务的完成时间

c# - 自定义绑定(bind)水平 ScrollView 的构造函数中的 ItemsSource 为空

c# - UserStore 每个 HttpRequest 的 Unity IoC 生命周期

c# - 如何在 C# 中的组合框显示成员中附加两个字段值

c# 类型推断 - 错误 - 没有来自的隐式引用转换

c# - Java 中有类似 Enumerable.Range(x,y) 的东西吗?

java - Apache POI 和 SXSSF : Number of rows always 0