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 de la feuille de trous et pas seulement la cellule ... Quelle est la bonne façon de changer la couleur de remplissage de la cellule?
Voici le code de travail, 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();
}
jetez un oeil à cet exemple:
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;
}
ici, vous pouvez voir comment appliquer le gras, la couleur d'arrière-plan et la bordure pour chaque cellule d'une rangée. Dans cet exemple, columns
est un tableau de chaînes représentant des données de colonnes; utilisez plutôt vos valeurs.