2015-02-24 29 views
10

Bir excel e-tablosu oluşturmak için bir C# programı yazdım. Sayfada birden çok sütun var. Sütunlardan birini biçimlendirmek istiyorum. o sütun doğru BiçimlendirilirkenEPPLUS Excel Kitaplığı ile bir sütunu biçimlendirme

aFile = new FileInfo(excelDocName); // excelDocName is a string 
ExcelPackage pck = new ExcelPackage(aFile); 
var ws = pck.Workbook.Worksheets.Add("Content"); 
ws.View.ShowGridLines = true; 
ws.Cells["B:B"].Style.Numberformat.Format = "0.00"; 
ws.Cells[1, 1].Value = "AA"; 
ws.Cells[1, 2].Value = "BB"; 
ws.Cells[1, 3].Value = "CC"; 
ws.Cells[1, 4].Value = "DD"; 
for (int row = 2; row <= 10; ++row) 
    for (int col = 1; col <= 4; ++col) 
    { 
    ws.Cells[row, col].Value = row * col; 
    } 
ws.Row(1).Style.Font.Bold = true; 
pck.Save(); 

sorun o da belirttiğim sadece sütun biçimi ile diğer sütunları biçimlendirme ve değil, vardır. Ben de denedim:

ws.Column(1).Style.Numberformat.Format = "0.00"; 

Bu bir hata mı yoksa bir şey eksik?

+0

hmm, ben yanlış bir şey göremiyorum seçiciler. Bir şablon kullanıyor musunuz? Şablonun kendisi yanlış biçimlendirilmiş mi? Ya da ayarladığınız biçim sayılar için varsayılan olanı olabilir mi? Üzgünüz, ben bir yardım kullanmıyorum – astian

+0

Bir şablon kullanmıyorum. Bir tane kullanabileceğimi biliyor muydun? Bunu incelemek istiyorum – elbillaf

cevap

15

Varolan bir dosyayı mı açıyorsunuz? Açmadan önce diğer sütunlara zaten uygulanmış bir biçime sahip olabilir. Ya da astyan gibi bir şablon söyledi. Böyle ihtimale

Temizle tüm biçimlendirme: EPPlus 4.0.3 yılında

ws.Cells["A:D"].Style.Numberformat.Format = null; 
ws.Cells["B:B"].Style.Numberformat.Format = "0.00"; 

Tam birim testi:

[TestMethod] 
public void Format_Single_Column_Test() 
{ 
    //http://stackoverflow.com/questions/28698226/formatting-a-column-with-epplus-excel-library 
    var excelDocName = @"c:\temp\temp.xlsx"; 
    var aFile = new FileInfo(excelDocName); // excelDocName is a string 

    if (aFile.Exists) 
     aFile.Delete(); 

    ExcelPackage pck = new ExcelPackage(aFile); 
    var ws = pck.Workbook.Worksheets.Add("Content"); 
    ws.View.ShowGridLines = true; 
    ws.Cells["A:D"].Style.Numberformat.Format = null; 
    ws.Cells["B:B"].Style.Numberformat.Format = "0.00"; 
    ws.Cells[1, 1].Value = "AA"; 
    ws.Cells[1, 2].Value = "BB"; 
    ws.Cells[1, 3].Value = "CC"; 
    ws.Cells[1, 4].Value = "DD"; 
    for (int row = 2; row <= 10; ++row) 
     for (int col = 1; col <= 4; ++col) 
     { 
      ws.Cells[row, col].Value = row*col; 
     } 
    ws.Row(1).Style.Font.Bold = true; 
    pck.Save(); 
} 
+0

E-tabloyu şablonsuz sıfırdan oluşturuyorum. Sadece sütunların sadece bir kısmını biçimlendirmem yeterli oluyor. Bundan hoşlanmıyorum, çünkü neden bunun bir hata olabileceğini hala anlamıyorum. Şimdi onunla oynayamayacağım, işe yarıyor. Yine de bu int akılda tutulacağım, formatı null olarak ayarlayabileceğim. Teşekkürler – elbillaf

+0

@elbillaf Hangi EPPlus sürümünü çalıştırıyorsunuz? Eklenen birim testini 4.0.3 versiyonunda denedim. – Ernie

+0

Sürüm ... 4.0.3 – elbillaf

İlgili konular