Экспорт вашей 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. Я никогда не занимался этим, но интересно узнать, что возможно.
Спасибо за это. Хотя мой сервер отвечает за мою цель, это, безусловно, правильный способ сделать это. – Tesseract
Что вы используете в качестве расширения файла - XLS, HTM, CSV или что-то еще? –