将列格式更改为ClosedXML.Excel C#中的货币

时间:2018-11-22 18:24:05

标签: c# excel closedxml

我创建System.Data.DataTable,然后使用ClosedXML.Excel将数据放入Excel

System.Data.DataTable table = GetTable();
XLWorkbook wb = new XLWorkbook();
var ws = wb.Worksheets.Add("Acompanhamento - Cultura");
ws.FirstCell().InsertTable(table, false);
var range = ws.RangeUsed();  

问题是我将列作为字符串,其值像$ 20000或R $ 10000(货币在变化),我不知道如何将货币类型设置为这些列,而不会丢失有关货币的信息。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

向创建的表中,添加一列具有currencyID的列,以及仅包含数字的列(不包含有关货币的信息),将此表添加至Excel,然后在循环中逐行检查什么是货币ID和格式细胞

   ws.Cell(j, i).Style.NumberFormat.Format = ws.Cell(j, i).Value.ToString() != "" ? Convert.ToInt16(ws.Cell(j, (i-1)).Value) == 2 ? " [$R$-pt-BR]#,##0.00" : "[$$-en-US] #,##0.00" : "";}

其中ws.Cell(j, i)是具有值(数字)的单元格,而ws.Cell(j, (i-1))是具有货币ID的单元格