2012-09-04 49 views
7

Tôi đang cố gắng sử dụng C# và ClosedXML để nhập dữ liệu vào bảng tính excel. Tôi đã tìm thấy hầu hết những điều tôi đang tìm kiếm, tuy nhiên tôi đang gặp một số vấn đề khi nhận được ClosedXML để quản lý số lượng vị trí thập phân cũng như làm tròn số.ClosedXML: Làm việc với phần trăm, 1 chữ số thập phân và làm tròn?

Tôi hiện đang sử dụng cell.Style.NumberFormat.NumberFormatId = 10; để có được các tế bào để hiển thị một Tỷ lệ phần trăm với những nơi 2 chữ số thập phân, tôi sẽ tuy nhiên muốn chỉ hiển thị 1 nơi thập phân, và wiki for ClosedXML chỉ cho thấy phần trăm với 0 hoặc 2 chữ số thập phân.

Tiếp theo khi tôi không sử dụng ClosedXML và thêm dữ liệu trực tiếp Excel sẽ làm tròn chữ số thập phân, nhưng khi tôi sử dụng ClosedXML để nhập dữ liệu các tế bào không làm tròn lên, là có một cách để buộc ClosedXML làm tròn cho tôi, hay tôi cần phải làm điều đó bằng tay?

Trả lời

6

Hình như bạn có thể phải viết riêng của bạn NumberFormatId theo này SO trả lời: https://stackoverflow.com/a/7900397/541208, cách khác, trong ClosedXML docs, nó nói thêm một mới 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"); 

Vì vậy, tùy chỉnh của bạn NumberFormat sẽ một cái gì đó như 0.0% dựa trên các định dạng mặc định listed here:

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

Tôi đã bỏ lỡ câu trả lời này nhưng sau khi nhìn vào nó, tôi đã thay đổi forma của mình t đến 'cell.Style.NumberFormat.Format = "0.0%";' và vị trí thập phân đơn được xử lý. Cảm ơn bạn. Bây giờ để tìm ra câu đố làm tròn. –

+0

Tôi mang nó trở lại, bây giờ với 1 chữ số thập phân số được làm tròn đúng cách. Cám ơn bạn một lần nữa. –

Các vấn đề liên quan