2016-05-05 17 views
5
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(); 
} 

Versione di NPOI: 2.1.3.1 Ho questo codice e sta cambiando il colore per il foglio di buco e non solo la cella di ... Qual è il modo corretto di cambiare il colore di riempimento della cella?Come cambiare il colore delle celle con NPOI


Ecco il codice di lavoro, in base alla risposta che viene contrassegnata come corretta di seguito:

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(); 
     } 

risposta

9

un'occhiata a questo esempio:

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; 
} 

qui puoi vedere come app in grassetto, colore di sfondo e bordo per ogni cella di fila. In questo esempio columns è una stringa array che rappresenta i dati delle colonne; usa invece i tuoi valori.

+0

Non riesco a dichiarare un CellStyle .. – meme

+0

CellStyle è nello spazio dei nomi 'NPOI.SS.UserModel'. Ho modificato la mia risposta. – Nino

+0

ancora non posso dichiararlo. aggiunte le importazioni alla domanda – meme

Problemi correlati