Ответ ASP.NET CSV, проблема экспоненциального формата Excel - PullRequest
4 голосов
/ 06 января 2010

В моем приложении ASP.NET мне нужно написать DataTable как CSV-ответ клиенту. Все работает нормально, кроме столбца, который имеет цифры.

Пример: 7002136138603600000

Но когда я открываю CSV в Excel, он отображается в экспоненциальном формате.

Примерно так: 7E + 18

Не могли бы вы дать мне знать, что нужно сделать, чтобы эти значения отображались в тестовом виде вместо экспоненциального?

Спасибо, Махеш

Ответы [ 5 ]

1 голос
/ 06 января 2010

Относительно формата номеров CSV, проверьте здесь: http://support.microsoft.com/kb/214233


Я делал экспорт в Excel много раз. Просто напишите вывод Gridview в String Builder с помощью HtmlTextWriter и отправьте ответ.

Вы можете найти два примера этого:

Дополнительные результаты поиска: http://www.google.com/search?q=export+gridview+to+excel

Итак, я думаю, что самый простой способ - привязать GridView и записать его в виде HTML, как в других примерах, если только вам не нужен CSV по другой причине.

1 голос
/ 06 января 2010

Вы не можете сделать это с CSV. Попробуйте это с Excel. Создайте электронную таблицу со значением «7002136138603600000» в ячейке, которой предшествует одинарная кавычка ('), чтобы указать, что это текст. Excel будет отображать полный номер правильно. Сохраните его как CSV. Обновить. Число будет отображаться в экспоненциальном формате.

В качестве альтернативы вы можете использовать HTML. Добавьте пространство имен xmlns: x = "urn: schemas-microsoft-com: office: excel" в корневой каталог html и с этим атрибутом - в свой элемент td.

x:str="'7002136138603600000"

Excel отобразит его как текст. Для более полного примера создайте документ Excel, как я упоминал, и сохраните как HTML.

Вы также можете использовать XML, если знаете, что ваши клиенты используют Excel 2003 или новее.

0 голосов
/ 24 апреля 2014

легко добавить asc char 32, когда все числа являются цифрами, используйте функцию, чтобы выяснить, все ли числа являются цифрами, и если true, то просто добавьте asi 32 к числу (при необходимости преобразуйте в строку).Протестировал CSV-файл на Microsoft Excel 2007 и Windows 7, и он работает нормально, не уверен насчет более ранних версий.

0 голосов
/ 06 января 2010

Должен ли он быть CSV? Если это так, то вы в значительной степени застряли с поведением по умолчанию из Excel.

Если это не обязательно CSV, посмотрите в формат Excel XML, который даст вам более точный контроль над форматами отображения (все, что можно сделать в Excel, можно сделать в строке файла XML). Конечно, это поддерживается только в Office 2003 и более поздних версиях.

0 голосов
/ 06 января 2010

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

...