Как показать длинные цифры в Excel? - PullRequest
11 голосов
/ 24 мая 2009

Мне нужно создать программу на C #, которая создает файлы CSV и помещает длинные числа (как строку в моей программе). Проблема в том, что когда я открываю этот файл CSV в Excel, числа выглядят так:

1234E + или 1234560000000 (конец числа равен 0)

Как мне сохранить форматирование чисел? Если я открою файл как текстовый файл, числа будут отформатированы правильно.

Заранее спасибо.

Ответы [ 5 ]

16 голосов
/ 25 мая 2009

Как уже упоминалось, вы можете заставить данные быть строкой. Лучший способ для этого был = "1234567890123". = Делает ячейку формулой, а кавычки делают вложенное значение строковым литералом Excel. При этом будут отображены все цифры, даже превышающие предел точности чисел в Excel, но ячейка (как правило) не сможет использоваться непосредственно в числовых вычислениях.

Если вам нужно, чтобы данные оставались числовыми, лучше всего создать собственный файл Excel (.xls или .xlsx). Различные подходы для этого можно найти в решениях этого связанного вопроса переполнения стека .

Если вы не возражаете против использования разделителей тысяч, есть еще один прием, который вы можете использовать, чтобы ваша программа на C # вставляла разделители тысяч и заключала значение в кавычки: «1,234,567,890,123». Не включайте ведущий = (так как это заставит его быть строкой). Обратите внимание, что в этом случае кавычки предназначены для защиты запятых в CSV, а не для указания строкового литерала Excel.

9 голосов
/ 24 мая 2009

Отформатируйте эти длинные числа в виде строк, поставив перед собой '(апостроф) или сделав из него формулу: = "1234567890123"

0 голосов
/ 27 мая 2009

Мои два цента:
Я думаю, что важно понимать, что есть разница между «данными» и «форматированием». В этом примере вы пытаетесь сохранить оба файла только для данных. Это, как вы можете сказать из других ответов, изменит характер данных. (Другими словами, нужно преобразовать его в строку. Файл CSV - это файл, содержащий только данные. Вы можете сделать некоторые хитрости здесь и там, чтобы объединить форматирование с данными, но, по моему мнению, это по существу повреждает данные, объединяя это со значениями без данных: т.е. «Форматирование».
Если вам действительно нужно хранить информацию о форматировании, я предлагаю, чтобы, если у вас было время на ее разработку, вы переключились на тип файла, способный хранить информацию о форматировании отдельно от данных. Похоже, эта проблема была бы хорошим кандидатом для решения XML Spreadsheet. Таким образом, вы можете не только указать свои данные, но также их тип и любое форматирование, которое вы решите использовать.

0 голосов
/ 24 мая 2009

Когда я генерирую данные для импорта в Excel, я не генерирую файл CSV, если я хочу контролировать способ отображения данных. Вместо этого я записываю файл Excel, в котором свойства ячеек установлены соответствующим образом. Я не знаю, есть ли какая-нибудь библиотека, которая бы сделала это для вас в C #, не требуя установки Excel на машину, генерирующую файлы, но это то, что нужно посмотреть.

0 голосов
/ 24 мая 2009

Вы не можете. Excel хранит числа с точностью до пятнадцати цифр. Если вы не возражаете против того, чтобы иметь возможность выполнять вычисления для чисел из Excel, вы можете сохранить их как текст, и все цифры будут отображаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...