EPPlus собирает большое количество

Я использую EPPlus для создания отчета о Excel в ASP.Net. У меня есть следующий код в использовании:

aCell.Value = CDec(aValue)

aCell имеет тип OfficeOpenXml.ExcelRange,

Это прекрасно работает большую часть времени. Однако когда aValue 201600000000515561, ячейка в Excel установлена ​​со значением 201600000000516000.

Проходя по коду и следя за значением aCell.Value показывает, что устанавливается правильное значение. Но когда открывается Excel, значение округляется до следующей 1000.

У кого-нибудь есть решение или это ошибка в EPPlus?

1 ответ

Решение

Это не 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

Другие вопросы по тегам