我不明白爲什麼會發生這種情況,首先我嘗試將粗體文本應用到第一行的列標題中,然後我想將標題單元格的邊框設置爲MEDIUM,但是此MEDIUM邊框樣式應用於所有細胞在表中。在下面相同的代碼中有更多的問題:CellStyle意外地應用於Worksheet中的所有單元格 - NPOI?
- 我的列標題(第一行)中的文本不是粗體,因爲我想。
- 我的列標題中的文字顏色不是我想要的紅色。
這裏是我的代碼(與NPOI庫處理):
private void CreateATest(string filename)
{
FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write);
HSSFWorkbook wb = new HSSFWorkbook();
ISheet sheet = wb.CreateSheet("NPOI");
IRow row = sheet.CreateRow(0);
row.RowStyle = wb.CreateCellStyle();
row.RowStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
row.RowStyle.VerticalAlignment = VerticalAlignment.CENTER;
row.RowStyle.WrapText = true;
IFont font = wb.CreateFont();
font.Boldweight = 3;
font.Color = (short) ColorTranslator.ToWin32(Color.Red);
font.FontHeight = 30;
row.RowStyle.SetFont(font);
int i = 0;
foreach (string header in new string[] { "ID", "Name", "Age" })
{
row.CreateCell(i++).SetCellValue(header);
row.Cells[i - 1].CellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.MEDIUM;
row.Cells[i - 1].CellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.MEDIUM;
row.Cells[i - 1].CellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.MEDIUM;
}
row.Cells[i - 1].CellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.MEDIUM;
Random rand = new Random();
for (i = 1; i < 1000; i++)
{
IRow row1 = sheet.CreateRow(i);
for (int j = 0; j < 3; j++)
{
row1.CreateCell(j).SetCellValue(rand.Next(100));
}
}
wb.Write(fs);
fs.Close();
}
請幫我,我很新的NPOI,一直在使用它只是嘗試。您的幫助將不勝感激。 謝謝。 (< ---我不知道爲什麼這個'謝謝'不能跳到下一行,即使我在輸入之前鍵入Enter)
謝謝你,你可能有Excel中的一個很好的知識,但該規則可以適用到Excel互操作(Excel自動化),我正在使用NPOI,它通過另一種機制編輯和修改Excel文件。我已經提到了NPOI庫的一個例子,Cell樣式可以在創建後立即應用。我的代碼中的錯誤是我沒有爲我的單元格創建新樣式,在這種情況下,CellStyle將是單元格所屬行的RowStyle。我自己解決了這個問題,謝謝你,不過你應該接受我的回答。請繼續堅持與stackoverflow :) – 2013-04-11 08:22:31
什麼是解決方案? – Rory 2016-02-16 23:51:57