response.ContentType = "application / vnd.ms-excel", изменяющий ширину столбцов электронной таблицы - PullRequest
1 голос
/ 07 октября 2009

Открытие электронной таблицы Excel с объектом ответа, и мне любопытно узнать, есть ли способ, как только все данные будут записаны для изменения размера / форматирования ширины столбцов, чтобы все данные соответствовали?

Спасибо, Рон.

1 Ответ

1 голос
/ 07 октября 2009

Вы имели в виду, установить заголовок ответа и затем выбросить HTML в браузер клиента? MS Excel может обрабатывать HTML, но вы не можете хранить макрос VBA внутри HTML, поэтому простого способа добиться этого не существует.

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

Чтобы помочь вам в этом, попробуйте сгенерировать рабочую книгу на рабочем столе компьютера, поместив текст и формат, аналогичный экспортируемому отчету, затем сохраните книгу в виде файла html, а затем посмотрите на сгенерированный код. За всем грязным автоматически генерируемым кодом CSS / HTML вы найдете несколько советов по улучшению HTML-таблицы. Например, посмотрите на этот фрагмент:

<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 11">

Этим вы помогаете MS Excel идентифицировать ваш HTML-файл как лист. Теперь посмотрите в css внутри элемента, вы найдете несколько пользовательских селекторов, таких как col {mso-width-source:auto;}. Попробуйте поиграть с его значениями, пока вы не будете удовлетворены результатами, а затем включите его в HTML.

...