Принудительное использование числовых значений в виде текста при экспорте таблицы HTML в Excel - PullRequest
9 голосов
/ 08 апреля 2011

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

Ячейка в вопросе:

Response.Write("<td class='tdsmall' align='left' NOWRAP>" & rsPODetail("ITM_ID") & "</td>")

Примеры * * 1 006 HTML | EXCEL
00212704 | 212704
00212336 | 212336
00212251 | 212251

Ответы [ 6 ]

10 голосов
/ 14 марта 2012

Просто добавьте одну строку перед таблицей

Response.Write("<style> TD { mso-number-format:\@; } </style>");

Проверьте это: Экспорт Gridview в Excel со строками, отформатированными как текст

7 голосов
/ 08 апреля 2011

Может быть, попробовать = "00212704"

Response.Write("<td class='tdsmall' align='left' NOWRAP>=""" & rsPODetail("ITM_ID") & """</td>")
4 голосов
/ 11 апреля 2011

Один из вариантов, который не требует изменения содержимого таблиц, - это использование стиля CSS mso-number-format, как описано в этого ответа SO .Для текста вы должны использовать что-то вроде:

CSS:

.xlText {
    mso-number-format: "\@";
}

HTML:

<td class="xlText">00030</td>
1 голос
/ 19 ноября 2013

поставить стиль в заголовке HTML. TD {mso-number-format: \ @; }

все ячейки таблицы будут преобразованы в текст.

0 голосов
/ 08 апреля 2011

Можете ли вы сделать это в виде файла .csv и загрузить его на клиент? Изменить: Дерьмо, это не работает.

На самом деле, вы не можете делать ничего, что не будет взломом, потому что IE и Excel на самом деле не «общаются» в стандартном формате. Это проблема на стороне клиента в Excel, которую вы пытаетесь переопределить поведение по умолчанию.

На самом деле вам, возможно, придется создать файл шаблона Excel, сохранить его на веб-сервере и написать скрипт, который копирует файл Excel, вносит изменения и отправляет его пользователю. Таким образом, вы можете контролировать форматирование чисел.

0 голосов
/ 08 апреля 2011

Excel воспринимает число как текст, если перед числом ставить одну кавычку, например «001234

может быть, это поможет вам решить вашу проблему

...