1. 程式人生 > >使用NPOI設定Excel表的單元格背景顏色

使用NPOI設定Excel表的單元格背景顏色

使用NPOI設定Excel單元格背景顏色時,應該設定FillForegroundColor屬性,而且還要設定FillPattern才行。

程式碼如下:

style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.PINK.index;

style.FillPattern = FillPatternType.SOLID_FOREGROUND;

簡單程式碼示例:

using UnityEngine;
using System.Collections;
using UnityEditor;
using NPOI.HSSF.UserModel;
using NPOI.HPSF;
using NPOI.HSSF.Util;
using NPOI.POIFS.FileSystem;
using NPOI.SS.UserModel;
using System.Collections.Generic;
using System.Linq;
using System.IO;
public class WorkBook 
{
	[MenuItem("H3D/XLSX檔案測試")]
	static void CreateExcelFile()
	{
		// 生成簡報
		IWorkbook wb = new HSSFWorkbook();
		var sheet = wb.CreateSheet("第一頁");
		int currentRow = 0;

		ICellStyle s = wb.CreateCellStyle ();
		s.FillForegroundColor = HSSFColor.Pink.Index;
		s.FillPattern = FillPattern.SolidForeground;

		// 簡報開始
		var row = sheet.CreateRow(currentRow++);
		row.CreateCell(0).SetCellValue("第一頁第一行");
		row.GetCell(0).CellStyle = s;

		row = sheet.CreateRow(currentRow++);
		row.CreateCell(0).SetCellValue("第一頁第二行");



		var sheet2 = wb.CreateSheet("第二頁");
		int currentRow2 = 0;
		// 簡報開始
		var row2 = sheet2.CreateRow(currentRow2++);
		row2.CreateCell(0).SetCellValue("第二頁第一行");

		row2 = sheet2.CreateRow(currentRow2++);
		row2.CreateCell(0).SetCellValue("第二頁第二行");


		//save
		string savePath = "XLSXTest.xlsx";
		FileStream fs = new FileStream(savePath, FileMode.OpenOrCreate, FileAccess.Write);
		wb.Write(fs);
		fs.Close();
		Debug.Log("報告路徑:" + savePath);
	}

}

效果圖:


以上引用需要使用:NPOI庫;

以上程式碼和NPOI庫需要放入Editor目錄下;