Как создать файл MS-Excel с помощью веб-приложения ASP? - PullRequest
0 голосов
/ 17 ноября 2009

В соответствии с моим заявлением мне нужно сгенерировать файлы Excel.

Я могу создавать файлы Excel с:

Response.ContentType = "application / vnd.ms-excel" в заголовке и заполнении данных путем создания таблицы HTML.

Но при попытке создать файл, извлекающий его из местоположения сервера и сохраняющий в нем данные (здесь мы создаем объект Excel для создания файла), веб-страница открывается с состоянием DONE с пустой страницей и Исходный файл показывает данные в формате HTML. Где, когда я пытаюсь открыть файл явно, используя путь, я получаю следующие ошибки:

показывает несколько ошибок, например: Примечание. (MS-Excel DLL) устанавливается на сервере.

Сообщение об ошибке-1: Макросы могут содержать вирусы. Обычно безопасно отключать макросы, но если они допустимы, вы можете потерять некоторые функции. Примечание: в файле нет макроса При нажатии кнопки «Включить макросы» появляется второе сообщение об ошибке:

Файл не может быть доступен. Попробуйте одно из следующего:

  1. Убедитесь, что указанная папка существует.
  2. Убедитесь, что папка с файлом не доступна только для чтения.
  3. Убедитесь, что имя файла не содержит ни одного из следующих символов <>? []: | или *
  4. Убедитесь, что имя файла / пути не содержит более 218 символов.

Примечание. Все вышеперечисленные условия выполняются.

И, наконец, при нажатии ОК появляется сообщение об ошибке:

Этот файл не в распознаваемом формате.

Затем открывается в зашифрованном формате.

Может кто-нибудь сообщить мне, в чем может быть проблема?

Ответы [ 3 ]

0 голосов
/ 17 ноября 2009

Я делал это однажды, это было чертовски сложно. По сути, существуют всевозможные ограничения безопасности, такие как вызовы в Excel COM API очень сложно из веб-контекста. Лучше всего сгенерировать файл Excel 2007, используя программу записи XML. Я не использовал его, но некоторые люди предлагают это ExcelXmlWriter , чтобы сделать это проще

Другой вариант - записать файл CSV, а не файл Excel. Вы не получите крутых формул или форматирования, но они наиболее совместимы.

0 голосов
/ 01 декабря 2011

Получаете ли вы это сообщение об ошибке из Excel на сервере? Если вы это сделаете, вам нужно понизить Macro Security в Excel. Для этого проще всего войти на сервер как пользователь, который будет открывать Excel, и снизить уровень безопасности макросов до соответствующего уровня.

В противном случае вам будет предложено указать эту сторону сервера при каждом открытии листа - это функция безопасности.

В остальном, пожалуйста, опубликуйте пример кода для автоматизации шага Excel.

0 голосов
/ 17 ноября 2009

Я бы соблазнился создать файл Excel в формате XML (.xlsx). Вам вообще не нужно было устанавливать Excel или использовать его объектную модель, вы можете начать с шаблона .xlsx документа, который будет содержать любые статические элементы и тип макета страницы, а затем просто вставить свой контент в нужные места.

Если у вас есть документ Excel (.xlsx), вы можете открыть его и посмотреть, что находится внутри, переименовав его и добавив расширение .zip (документы Office 2007 на самом деле представляют собой zip-файлы).

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