2012-09-04 15 views
7

Bir excel sayfasına veri girmek için C# ve ClosedXML'u kullanmaya çalışıyorum. Aradığım şeylerin çoğunu buldum, ancak sayıları yuvarlamanın yanı sıra ondalık basamak sayısına dikkat çekmek için ClosedXML almakla ilgili bazı sorunlar yaşıyorum. Şu anda cell.Style.NumberFormat.NumberFormatId = 10; 2 ondalık basamakla bir yüzdesi göstermek için hücreyi almak için kullanıyorumClosedXML: Yüzde, 1 ondalık basamak ve yuvarlama ile çalışmak?

, ben ancak sadece 1 ondalık yer göstermek istiyoruz ve wiki for ClosedXML sadece 0 veya 2 ondalık basamakla yüzde gösterir. Ben doğrudan Excel yukarı ondalık basamak yuvarlar ama hücreler kadar yuvarlak olmayan veri girmek için ClosedXML kullandığınızda, için yuvarlamak ClosedXML zorlamak için bir yol yoktur ClosedXML kullanmak ve veri katmayan

Sonraki ya da bunu elle yapmam gerekiyor mu?

cevap

6

SO Yanıt buna göre kendi özel NumberFormatId yazmak zorunda Görünüşe: https://stackoverflow.com/a/7900397/541208 alternatif ClosedXML docs yılında, o eklemek diyor bir Style yeni:

var workbook = new XLWorkbook(); 
var ws = workbook.Worksheets.Add("Style NumberFormat"); 

var co = 2; 
var ro = 1; 

// Using a custom format 
ws.Cell(++ro, co).Value = "123456.789"; 
ws.Cell(ro, co).Style.NumberFormat.Format = "$ #,##0.00"; 

ws.Cell(++ro, co).Value = "12.345"; 
ws.Cell(ro, co).Style.NumberFormat.Format = "0000"; 

// Using a OpenXML's predefined formats 
ws.Cell(++ro, co).Value = "12.345"; 
ws.Cell(ro, co).Style.NumberFormat.NumberFormatId = 3; 

ws.Column(co).AdjustToContents(); 

workbook.SaveAs("StylesNumberFormat.xlsx"); 

Şimdi özel NumberFormat olurdu varsayılan formatları listed here:

ws.Cell(ro, co).Style.NumberFormat.Format = "0.0%"; 
+0

ben bariz bir cevap olarak bu cevapsız ama baktıktan sonra benim forma değişti dayalı 0.0% gibi bir şey t 'cell.Style.NumberFormat.Format = "% 0,0";' ve ondalık basamak yerine getirilir. Teşekkür ederim. Şimdi yuvarlama bulmacasını bulmak için. –

+0

Onu geri alıyorum, şimdi 1 ondalık basamak ile sayı düzgün bir şekilde yuvarlanıyor. Tekrar teşekkürler. –

İlgili konular