セルのフォント色を条件付きで変更しようとしています。これは私の最後の試行です:NPOIはセルのフォント色を変更しません
IWorkbook wb = null;
using (FileStream _fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
wb = WorkbookFactory.Create(_fileStream);
_fileStream.Close();
}
ISheet sheet = wb.GetSheet(sheetName);
IFont font = wb.CreateFont();
...
...
// within a loop
ICell cell = sheet.GetRow(r).GetCell(col);
if (integrity < 1)
{
ICellStyle redStyle = cell.CellStyle;
font.Color = IndexedColors.Red.Index;
redStyle.SetFont(font);
cell.CellStyle = redStyle;
}
else
{
ICellStyle normalStyle = cell.CellStyle;
font.Color = XSSFFont.DEFAULT_FONT_COLOR;
normalStyle.SetFont(font);
cell.CellStyle = normalStyle;
}
ただし、条件が満たされてもフォントは変更されません。ループの中に入っているセルの代わりに、すべてのセルにスタイルが適用されているようです。私はこの問題に関連するいくつかの質問を読んだが、うまくいかない。
この新しい試みはすべてのセルをフォーマットしています。それが条件またはデフォルトで「normalStyle」
おかげでそれを割り当てます!しかし、期待どおりに動作していません。私はあなたの応答に基づいて私の最後の試行で私の質問を編集しました –
あなたの編集はおそらく動作できません。私のコードはICellStyleオブジェクトをループの外側に作成し、ワークブックから直接作成することに注意してください。 'cell.CellStyle'プロパティにアクセスしてそのプロパティを変更することはできません。そうしないと、常に同じオブジェクトで作業することになります。 –