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();
}
Version de NPOI: 2.1.3.1 J'ai ce code et il change la couleur pour toute la feuille et non seulement la cellule... Quelle est la manière appropriée de changer la couleur de remplissage de la cellule ?
Voici le code fonctionnel, basé sur la réponse marquée comme correcte ci-dessous :
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();
}