Богато отформатированные отчеты Excel в приложении ASP.Net - PullRequest
1 голос
/ 14 октября 2008

Как создать отчеты Excel с расширенным форматированием, включая диаграммы, с помощью приложения ASP.Net?

Согласно http://support.microsoft.com/kb/257757 автоматизация офиса на стороне сервера не рекомендуется, а также наш администратор не разрешает установку офиса на сервере

Клиент не готов тратить много денег на сторонние компоненты

Обязательным требованием является сохранение форматирования, используемого конечным пользователем, а также использование ТОЛЬКО Excel 2003.

Спасибо

Обновление: Мы используем ExcelXmlWriter из http://www.carlosag.net/Tools/ExcelXmlWriter/Generator.aspx, так как он был наиболее подходящим.

Ответы [ 2 ]

4 голосов
/ 14 октября 2008

Два варианта, которые вы могли бы рассмотреть:

1) Элемент управления ReportViewer. Вы можете создать свой отчет, в том числе диаграммы, и вывести его на печать. Вы можете разрешить отображение отчета в элементе управления или пропустить его и экспортировать напрямую в Excel. Версия, в которой он будет открыт, зависит от того, какой клиент установлен.

2) Вы можете создать страницу, которую вы ищете, используя GridView, или простые старые таблицы HTML со встроенными изображениями диаграмм. Измените заголовки ответа, чтобы эта страница загружалась как файл Excel.

Если вам нужно сохранить диаграммы Excel, которые меняются при изменении данных в результирующем файле Excel, я не уверен, возможно ли это без использования сторонних элементов управления или автоматизации Office. Указанные выше параметры работают, если вы встраиваете изображение диаграммы, созданное вашим приложением asp.net.

2 голосов
/ 14 октября 2008

Вы можете использовать, например, эту библиотеку XML Excel для расширенного форматирования, но, к сожалению, там нет диаграмм.

Без каких-либо сторонних компонентов и автоматизации Office (что на серверах действительно не рекомендуется) у вас есть два основных варианта, как предложил JasonS.

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