2016-11-30 2 views
2

私は、複数のルールに基づいてExcel文書をスクラブする必要があるという要件があります。それらの1つは、指定された列の赤いテキストと取り消し線のフォントスタイルですべてのセルをプログラムで削除することです。 Microsoft.Office.Interop.Excelライブラリを使用してC#で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(','); 
+0

短い答えは、はい、あなたは検出しても、セルを変更することができます。しかし、あなたが話していることの多くを説明するための条件付きロジックを作成するには、苦痛になります。 – Greg

答えて

1

あなたは以下のように確認することができます取得する前に、次の

if (excelWorkSheet.Range["E"].Font.Strikethrough == true && excelWorkSheet.Range["E"].Interior.Color = 255) 
      excelWorkSheet.Range["E"].Value == ""; 
関連する問題