2013-10-14 3 views
0

Я использую библиотеку Excel - http://code.google.com/p/excellibrary/ - Чтобы создать электронную таблицу Excel 2003. Все работает отлично, за исключением случаев, когда используются некоторые большие значения.Библиотека Excel возможно целочисленное переполнение

Это некоторые ссылочные номера, которые используются клиентом, и мне просто нужно представить их как целочисленные значения в электронной таблице.

int val = 1420007117; 
worksheet.Celss[row, col] = new Cell(val); // Displays - 352108063 

Это приводит к значению 352108063 отображается в электронной таблице. Если значение меньше, то оно отображается нормально.

Кто-нибудь знает, в чем проблема, или как обойти эту проблему. Вывод значения в виде строки невозможен, так как он оставляет зеленую ошибку Number stored as Text.

+0

Использовать длинный, а не целое –

+1

Я бы сказал, что [тег: Excel] не поддерживает 64-битные целые числа, а [tag: ExcelLibrary] не заботится об этом. Для таких больших чисел вам лучше использовать с плавающей запятой. Именно так Excel обрабатывает большие числа. –

+0

@LS_dev Спасибо, я использовал double с форматированием для достижения результата. Отправьте свой комментарий как ответ, и я приму его. Длинные (Int64) не работают. – Kami

ответ

1

Я бы сказал, что не поддерживает 64-битные целые числа, а не заботится об этом.

Для таких больших чисел лучше использовать плавающие точки. Именно так Excel обрабатывает большие числа.

+0

Взгляд на исходный код библиотеки Excel; он представляется двоичным сдвигом значения в письменном виде и, как возможный результат, причиной этой проблемы, однако, двойные значения записываются как обычно. AS такой, используя double, сработал. – Kami

Смежные вопросы