2009-07-30 1 views
4

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

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

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

например.

00-> 123

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

ответ

5

Экспорт вашей 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-таблицы можно добавить column AutoFilter, указать вертикальное выравнивание строки, регулировать ширину столбцов, объединить столбцы с <colspan> (не показан), добавьте formulas и указать формат данных столбцов с vnd.ms-excel.numberformat. Вы даже можете сделать Crosstab (PivotTables) (не показан).

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

EDIT: Кажется, вы можете сделать a lot more with HTML/XML для создания сложных листов Excel. Я никогда не занимался этим, но интересно узнать, что возможно.

+0

Спасибо за это. Хотя мой сервер отвечает за мою цель, это, безусловно, правильный способ сделать это. – Tesseract

+0

Что вы используете в качестве расширения файла - XLS, HTM, CSV или что-то еще? –

0

Экспортировать столбец ведущим ' (апостроф).

+0

Это не лучшее решение, так как столбец содержит апостроф. – Tesseract

5

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

= "000123"

Смотрите здесь: Excel vs. Leading Zero & Space