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

Version von NPOI: 2.1.3.1 ich diesen Code habe, und es wird die Farbe für das Lochblech und nicht nur die Zelle zu ändern ... Was ist der richtige Weg zu ändern die Füllfarbe der Zelle?Wie mit NPOI Zelle verfärben


Hier ist der Arbeitscode, auf der Antwort basiert, die richtige unten markiert:

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

Antwort

9

bei diesem Beispiel einen Blick:

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

hier können Sie sehen, wie zu app fett, Hintergrundfarbe und Rahmen für jede Zelle in einer Reihe. In diesem Beispiel ist columns ein String-Array, das Spalten-Daten darstellt; Verwenden Sie stattdessen Ihre Werte.

+0

Ich kann nicht in der Lage sein, einen CellStyle zu deklarieren. – meme

+0

CellStyle ist in 'NPOI.SS.UserModel' Namespace. Ich habe meine Antwort bearbeitet. – Nino

+0

kann es immer noch nicht deklarieren. Importe zu Frage hinzugefügt – meme