Как показать лидирующие нули при экспорте в Excel? - PullRequest
4 голосов
/ 30 июля 2009

Я создаю отчет Excel путем изменения типа контента.

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

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

, например

000123 -> 123

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

Ответы [ 3 ]

6 голосов
/ 30 июля 2009

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

= "000123"

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

5 голосов
/ 31 июля 2009

Экспорт вашего 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.numberformat . Вы даже можете сделать Кросс-таблица (сводные таблицы) (не показана).

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

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

0 голосов
/ 30 июля 2009

Экспорт столбца с начальным ' (апостроф).

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