using NPOI.XSSF.UserModel; using NPOI.XSSF.Model; using NPOI.HSSF.UserModel; using NPOI.HSSF.Model; using NPOI.SS.UserModel; using NPOI.SS.Util; (...) XSSFWorkbook hssfwb; using (FileStream file = new FileStream(@"D:\VB\XLSX teste com NPOI\XLSX 1\Book1.xlsx", FileMode.Open, FileAccess.Read)) { hssfwb = new XSSFWorkbook(file); file.Close(); } ISheet sheet = hssfwb.GetSheetAt(0); IRow row = sheet.GetRow(0); ICell cell = row.CreateCell(5); cell.SetCellValue("test"); cell.CellStyle.FillBackgroundColor = IndexedColors.BrightGreen.Index; cell.CellStyle.FillPattern = FillPattern.SolidForeground; using (FileStream file = new FileStream(@"D:\VB\XLSX teste com NPOI\XLSX 1\Book1ee22.xlsx", FileMode.Create, FileAccess.Write)) { hssfwb.Write(file); file.Close(); }
NPOI version: 2.1.3.1 I have this code and it changes color for a sheet of holes, not just a cell ... What is the correct way to change the fill color of a cell?
Here is the working code based on the answer, which is marked as correct below:
XSSFWorkbook hssfwb; using (FileStream file = new FileStream(@"D:\Copy D\Tech\VB\XLSX teste com NPOI\XLSX 1\Book1.xlsx", FileMode.Open, FileAccess.Read)) { hssfwb = new XSSFWorkbook(file); file.Close(); } ISheet sheet = hssfwb.GetSheetAt(0); IRow row = sheet.GetRow(0); ICellStyle testeStyle = hssfwb.CreateCellStyle(); testeStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Medium; testeStyle.FillForegroundColor = IndexedColors.BrightGreen.Index; testeStyle.FillPattern = FillPattern.SolidForeground; ICell cell = row.CreateCell(5); cell.SetCellValue("testeeerere"); cell.CellStyle = testeStyle; using (FileStream file = new FileStream(@"D:\Copy D\Tech\VB\XLSX teste com NPOI\XLSX 1\Book1ee22.xlsx", FileMode.Create, FileAccess.Write)) { hssfwb.Write(file); file.Close(); }
source share