2012-09-04 224 views
7

我正在嘗試使用C#和ClosedXML將數據輸入Excel表。我發現了大部分我正在尋找的東西,但我有一些問題得到ClosedXML照顧的小數位數,以及四捨五入的數字。我目前使用cell.Style.NumberFormat.NumberFormatId = 10; 獲得細胞,以顯示與2位小數的百分比ClosedXML:使用百分比,小數點後1位和舍入?

,我卻想,只顯示1位小數,和wiki for ClosedXML只顯示有百分之0或2位小數。

下一頁的時候我不使用ClosedXML並添加數據直接Excel將舍入小數了,但是當我使用ClosedXML進入細胞不圍捕的數據,有沒有辦法迫使ClosedXML到輪我,還是我需要手動做到這一點?

回答

6

看起來你可能需要寫本自己的自定義NumberFormatId SO答:https://stackoverflow.com/a/7900397/541208,或者,在ClosedXML docs,它說,添加一個新的Style

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"); 

所以您的自定義NumberFormat會像0.0%基於默認格式listed here:

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

我錯過了這是顯而易見的答案,但看着它後,我改變了我的備考t到'cell.Style.NumberFormat.Format =「0.0%」;'並保留一位小數位。謝謝。現在想出四捨五入的難題。 –

+0

我拿回來,現在有1位小數,數字正確舍入。再次感謝你。 –

相關問題