EPPlus 正在收集大量数据

EPPlus is rounding up a large number

我正在使用 EPPlus 在 ASP.Net 中生成 excel 报告。我使用了以下代码:

aCell.Value = CDec(aValue)

aCell 的类型是 OfficeOpenXml.ExcelRange.

这在大多数情况下都能正常工作。但是,当aValue为201600000000515561时,Excel中的单元格设置值为201600000000516000.

单步执行代码并查看 aCell.Value 的值表明设置了正确的值。但是打开excel的时候,这个值已经四舍五入到下一个1000了。

有没有人有解决方案或者这是 EPPlus 中的错误?

这不是 Epplus 的事情,更像是 Excel 的事情。由于 excel 存储数字的方式,您最多有 15 个有效数字,之后 excel 基本上插入 0。如果你从左边数 201600000000515561,你会看到这个。看看这个:

https://en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel

我认为最流行的解决方法是将数字存储为文本,这当然会导致其自身的一系列问题。这是一个很好的主题:

http://answers.microsoft.com/en-us/office/forum/office_2007-excel/15-digit-number-limitation-non-text-workaround/a4974853-7c3c-4830-8562-2e88369d981b?auth=1