私が持っている次のコードスニペットは、文字列の長方形の行列とxlsファイルを書き込むためのパスを受け入れる関数です。マトリックスの内容をExcelシートのセルに配置し、内容に基づいていくつかの書式を適用します。
public static void WriteXL(string[,] matrix, string path)
{
XL.Application app = new XL.Application();
XL.Workbook wbk = app.Workbooks.Add();
XL.Worksheet wsht = wbk.Worksheets.Add();
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
int _i = i + 1;
int _j = j + 1;
if (matrix[i, 0] == "Day" || matrix[i, 0] == "Date")
{
wsht.Cells[_i, _j].Font.Bold = true;
wsht.Cells[_i, _j].Font.Italic = false;
wsht.Cells[_i, _j].Style.Font.Name = "Arial";
wsht.Cells[_i, _j].Style.Font.Size = 12;
wsht.Cells[_i, _j].Style.Interior.Color = NumberFromColor(Color.Yellow);
}
else if (j == 0)
{
wsht.Cells[_i, _j].Font.Bold = false;
wsht.Cells[_i, _j].Font.Italic = true;
wsht.Cells[_i, _j].Style.Font.Name = "Arial";
wsht.Cells[_i, _j].Style.Font.Size = 12;
wsht.Cells[_i, _j].Style.Interior.Color = NumberFromColor(Color.Beige);
}
else
{
wsht.Cells[_i, _j].Font.Bold = false;
wsht.Cells[_i, _j].Font.Italic = false;
wsht.Cells[_i, _j].Style.Font.Name = "Arial";
wsht.Cells[_i, _j].Style.Font.Size = 10;
wsht.Cells[_i, _j].Style.Interior.Color = NumberFromColor(Color.White);
}
wsht.Cells[_i, _j].Value = matrix[i, j];
}
}
wbk.SaveAs(path);
wbk.Close();
app.Quit();
app = null;
GC.Collect();
GC.WaitForFullGCComplete();
GC.WaitForPendingFinalizers();
}
したがって、想像できると思いますが、見出しのように、行を区切る「Day」と「Date」で始まる行があります。これらの行は太字のフォントと黄色の背景を持っています。これらの区切り行にあるセルを除いて、左端の列にはベージュの背景と斜体のテキストがあります。残りのセルは、背景が白の通常のテキストです。
生成されたxlsファイルを開くと、これはまったく表示されません。まず、ワークシート全体が白です。次に、「Day」(「Date」の前に来る)は太字ですが、サイズが間違っています。
使用されている最新の色がワークシート全体に適用されているようです。フォントサイズの変更は、現在のセルではなく、次のセルにのみ適用されます。