2013-12-12 14 views
5

Modifica: questi esempi dovrebbero funzionare tutti. Il mio problema era in realtà non correlato a epplus e questo codice così come la risposta contrassegnata funziona per lo styling di celle unite.EPPlus: Come stile le celle unite?

Mi piacerebbe essere in grado di disegnare una cella unita, tuttavia, i miei tentativi di modellarlo non hanno alcun effetto. Ecco come sto fusione delle cellule:

WorkSheet.Cells["A1:K1"].Merge = true; 

Ecco come ho cercato di impostare il colore di sfondo e il carattere di questa cella unita:

WorkSheet.Cells["A1:K1"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
WorkSheet.Cells["A1:K1"].Style.Fill.BackgroundColor.SetColor(Color.Black); 
WorkSheet.Cells["A1:K1"].Style.Font.Color.SetColor(Color.Red); 

Un altro modo ho provato:

WorkSheet.Cells["A1"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
WorkSheet.Cells["A1"].Style.Fill.BackgroundColor.SetColor(Color.Black); 
WorkSheet.Cells["A1"].Style.Font.Color.SetColor(Color.Red); 

un altro modo ho provato:

WorkSheet.Cells[1, 1].Style.Fill.PatternType = ExcelFillStyle.Solid; 
WorkSheet.Cells[1, 1].Style.Fill.BackgroundColor.SetColor(Color.Black); 
WorkSheet.Cells[1, 1].Style.Font.Color.SetColor(Color.Red); 

Cosa mi manca qui? Sono in grado di disegnare altre celle che non sono state unite senza difficoltà, ma le mie celle unite non cambieranno.

+0

Appena provato a passare in rassegna ogni cella che viene unita e stilizzata, ha anche provato WorkSheet.Cells [1, 1, 11] .... senza successo. – Jakotheshadows

risposta

11

Non riesco a riprodurre il problema. Ecco un esempio di celle unite di stile. Vedi se riesci a trovare quello che hai fatto di sbagliato. Tutto ciò che devi fare è eseguirlo.

Per favore fatemi sapere se avete qualche dubbio.

var stream = new MemoryStream(); 

// print header 
using (var package = new ExcelPackage(stream)) 
{ 
    // add a new worksheet to the empty workbook 
    var worksheet = package.Workbook.Worksheets.Add("testsheet"); 
    for(var i = 0; i < 10; i++) 
     worksheet.Cells[i + 1, 1].Value = i.ToString(); 

    worksheet.Cells["A1:A3"].Merge = true; 
    worksheet.Cells["A1:A3"].Style.VerticalAlignment = ExcelVerticalAlignment.Top; 
    worksheet.Cells["A1:A3"].Style.Border.Top.Style = ExcelBorderStyle.Thin; 
    worksheet.Cells["A1:A3"].Style.Border.Left.Style = ExcelBorderStyle.Thin; 
    worksheet.Cells["A1:A3"].Style.Border.Right.Style = ExcelBorderStyle.Thin; 
    worksheet.Cells["A1:A3"].Style.Border.Bottom.Style = ExcelBorderStyle.Thin; 
    worksheet.Cells["A1:A3"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
    worksheet.Cells["A1:A3"].Style.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml("#f0f3f5")); 

    package.Save(); 
} 

stream.Seek(0, SeekOrigin.Begin); 

using (Stream file = File.Open("sample.xlsx", FileMode.Create)) 
{ 
    var buffer = new byte[8 * 1024]; 
    int len; 
    while ((len = stream.Read(buffer, 0, buffer.Length)) > 0) 
     file.Write(buffer, 0, len); 
} 
+0

Grazie. Il mio esempio funziona anche, il codice che ho mostrato non è stato eseguito a causa di un problema non correlato. Ho erroneamente pensato che stavo usando EPPlus in modo errato. – Jakotheshadows

+0

Buono a sapersi !!! –

Problemi correlati