NPOI单元格颜色设置及对照表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在用NPOI匯出Excel檔案時,可以設定很多格式..例如邊框、字型、背景色等等..
但因為我的英文不好,所以雖然內建提供了許多顏色的Class可用,但沒辦法一眼挑到想要的顏色
所以乾脆來做一個對照表來看。
首先先用Reflector來看看NPOI.dll裡面的結構如何:
可以看到NPOI.HSSF.Util.HSSFColor這個類別底下還有一堆類別,
這些類別就是顏色的class,而類別底下的靜態欄位index就是每個顏色的號碼
但如果一個一個試,又太累了,所以這邊利用反射的方法,來匯出顏色的對照表。
01 //NPOI 詳細的使用方式,就請看官網吧。
02 HSSFWorkbook workbook = new HSSFWorkbook(); 03 MemoryStream ms = new MemoryStream(); 04 Sheet sheet = workbook.CreateSheet(); 05
06 //找到NPOI 放置顏色的Type
07 Type colorType = typeof(NPOI.HSSF.Util.HSSFColor); 08
09 //找出此Type 下公用的class
10
var colorInstance = colorType.GetNestedTypes(BindingFlags.Public); 11
12 int count = 0;
13 foreach (var item in colorInstance) 14 {
15 //找出class 下的靜態名為index 的欄位
16 var shortColor = item.GetField("index").GetValue(null); 17
18 Row row = sheet.CreateRow(count); 19
20 //第一種style ,設字型的顏色 21
CellStyle cellStyleFontColor = workbook.CreateCellStyle(); 22 Font font1 = workbook.CreateFont(); 23 font1.Color = (short)shortColor; 24 cellStyleFontColor.SetFont(font1); 25
26 //第二種style ,設儲存格的前景色
27 CellStyle cellStyleBg = workbook.CreateCellStyle(); 28 cellStyleBg.FillForegroundColor = (short)shortColor; 29
cellStyleBg.FillPattern = FillPatternType.SOLID_FOREGROUND; 30 31 32
33 row.CreateCell(0).CellStyle = cellStyleBg;
34
35 Cell cell1 = row.CreateCell(1);
36 cell1.CellStyle = cellStyleFontColor;
37 cell1.SetCellValue("Test顏色");
38
39 row.CreateCell(2).SetCellValue();
40 row.CreateCell(3).SetCellValue(shortColor.ToString());
41
42 count++;
43 }
44
45 workbook.Write(ms);
46 var file = File.Open(@"test.xls", FileMode.OpenOrCreate);
47 file.Write(ms.ToArray(), 0, (int)ms.Length);
48
49 workbook = null;
50 ms.Close();
51 ms.Dispose();
52 file.Close();
53 file.Dispose();
執行完匯出來的Excel裡面就會有顏色的一覽表
下載Excel檔
那下面是轉換成html的格式,不過實際還是要看excel比較準囉。