Как показать ведущие нули при экспорте в Excel?

Я создаю отчет Excel, изменяя тип содержимого.

Response.ContentType = "application/vnd.ms-excel"

У меня есть значения, которые содержат ведущие нули. Проблема в том, что при экспорте в excel отсутствуют начальные нули.

e.g.

000123 -> 123

Я знаю, что это можно изменить вручную через Excel. Вопрос в том, как я могу сделать это программно?


person Tesseract    schedule 30.07.2009    source источник


Ответы (3)


Экспортируйте application/vnd.ms-excel в виде таблицы HTML, это дает вам доступ к различным параметрам форматирования рабочего листа:

Использовать:

Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);

И отправьте что-то вроде следующего:

<table border="1">
<caption>This is a caption, it appears centered across all columns</caption>
<colgroup>
<col width="100">
<col width="200">
</colgroup>
<tr valign="bottom">
<td><b>Header 1</b></td>
<td filter="all"><b>Header 2 (filterable)</b></td>
</tr>
<tr valign="top">
<td style="vnd.ms-excel.numberformat:$#,##0.00_)[semicolon]($#,##0.00)">1</td>
<td style="vnd.ms-excel.numberformat:00000000">2</td>
</tr>
<tr valign="top">
<td style="vnd.ms-excel.numberformat:$#,##0_)[semicolon]($#,##0)">3</td>
<td style="vnd.ms-excel.numberformat:00000000">4</td>
</tr>
<tr valign="top">
<td style="vnd.ms-excel.numberformat:$#,##0.00_)[semicolon]($#,##0.00)">-5</td>
<td style="vnd.ms-excel.numberformat:00000000">2</td>
</tr>
<tr valign="top">
<td style="vnd.ms-excel.numberformat:$#,##0.00_)[semicolon][red]$#,##0.00">-7</td>
<td style="vnd.ms-excel.numberformat:00000000">8</td>
</tr>
<tr valign="bottom">
<td formula="=sum(a2:a5)" style="vnd.ms-excel.numberformat:$#,##0.00_)[semicolon][red]$#,##0.00"></td>
<td formula="=average(b2:b5)" style="vnd.ms-excel.numberformat:00000000"></td>
</tr>
</table>

Обратите внимание, что с помощью синтаксиса таблицы HTML вы можете добавить автофильтр столбца. , указать вертикальное выравнивание строк, управлять шириной столбцов, объединить столбцы с помощью <colspan> (не показано), добавить формулы и укажите формат данных столбца с помощью формат vnd.ms-excel.number. Вы даже можете создавать кросс-таблицы (сводные таблицы) (не показано).

У меня была ссылка на более полную документацию о том, какие теги и атрибуты HTML поддерживаются и что они делают, но я, кажется, потерял ее. Если у кого-то еще есть хорошая ссылка на документацию Microsoft по этому поводу, не стесняйтесь отредактировать мой ответ или добавить комментарий.

РЕДАКТИРОВАТЬ: кажется, что вы можете сделать намного больше с HTML/XML для создания сложных листов Excel. Я никогда не заходил так далеко, но интересно узнать, что возможно.

person Grant Wagner    schedule 30.07.2009
comment
Спасибо за это. Хотя мои серверы ответов являются моей целью, это определенно правильный способ сделать это. - person Tesseract; 31.07.2009
comment
Какое расширение файла вы используете - XLS, HTM, CSV или что-то другое? - person Marc Stober; 06.01.2012

Я нашел ответ, вы можете заключить значение в кавычки и поставить перед ним знак равенства, чтобы сохранить ведущие нули.

="000123"

См. здесь: Excel против ведущего нуля и пробела

person Tesseract    schedule 30.07.2009

Экспортируйте столбец с ' (апострофом) в начале.

person Daniel Roseman    schedule 30.07.2009
comment
Это не лучшее решение, так как столбец содержит апостроф. - person Tesseract; 30.07.2009