Как показать длинные номера в Excel?

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

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

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

Спасибо заранее.

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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