How to change cell color using NPOI

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(); } 
+5
source share
1 answer

take a look at this example:

 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.SS.Util; 

(...)

 Row row = sheet.CreateRow(0); //styling Font boldFont = workbook.CreateFont(); boldFont.Boldweight = (short)FontBoldWeight.BOLD; ICellStyle boldStyle = workbook.CreateCellStyle(); boldStyle.SetFont(boldFont); boldStyle.BorderBottom = CellBorderType.MEDIUM; boldStyle.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.GREY_25_PERCENT.index; boldStyle.FillPattern = FillPatternType.SOLID_FOREGROUND; for (int i = 0; i < columns.Length; i++) { Cell cell = row.CreateCell(i); cell.SetCellValue(columns[i]); cell.CellStyle = boldStyle; } 

here you can see how to apply bold, background color and border for each cell in the row. In this example, columns is a string array representing column data; use your values ​​instead.

+9
source

All Articles