你可以编程方式检测Excel文档中的文本颜色,并只修改具有特定颜色和字体样式的文本的单元格吗?

我有一个要求,需要根据多个规则清理Excel文档; 其中之一是以编程方式删除给定列中带有红色文本和删除字体样式的所有单元格。 一旦你在C#中使用Microsoft.Office.Interop.Excel库访问你的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 == "";