Экспорт набора данных в файл Excel с несколькими листами в ASP.NET - PullRequest
3 голосов
/ 02 апреля 2010

В веб-приложении C # ASP.NET 3.5 мне нужно экспортировать несколько таблиц данных (или набор данных) в файл Excel 2007 с несколькими листами, а затем предоставить пользователю диалоговое окно «Открыть / Сохранить», БЕЗ сохранения Excel файл на веб-сервере.

Я использовал Excel Interop раньше. Я читал, что это неэффективно и не является лучшим подходом для достижения этого, и есть больше способов сделать это, 2 из них: 1) Преобразование данных в таблицах данных в XML-строку, которую понимает Excel. 2,0.

Похоже, OPEN XML SDK 2.0 лучше, пожалуйста, дайте мне знать. Есть ли другие способы сделать это? Я не хочу использовать сторонние инструменты.

Если я использую OPEN XML SDK, он создает файл Excel, верно? Я не хочу сохранять его на жестком диске сервера (Windows 2003) (я не хочу использовать Server.MapPath, эти файлы Excel создаются динамически, и они не требуются на сервере, как только клиент их получает) , Я прямо хочу предложить пользователю открыть / сохранить его. Я знаю, как это сделать, когда используется подход «XML string».

Пожалуйста, помогите. Спасибо.

Ответы [ 3 ]

1 голос
/ 03 апреля 2010

Вы можете легко передать пользователю ответ xml в виде файла XML Excel.

Любая страница:

<a href="report.aspx" target="_blank"> Open excel Report</a>

Report.aspx:

 Response.Clear();
 Response.ContentType = "application/vnd.ms-excel";
 Response.AddHeader("Content-Disposition"
                     , "attachment;filename=" & _fileName & ".xml");
 Response.Write("<?xml version=""1.0""?>");
 Response.Write(excelXML);
1 голос
/ 03 апреля 2010

Требуется ли поддержка Excel 2007?

Мы использовали NPOI с большим успехом, и он поддерживает все функции, которые мы хотим (несколько листов, форматирование, формулы). Это также довольно стабильно.

Файлы, которые он создает, имеют формат Excel 2003, поэтому они являются двоичными, а не OOXML.

Этот вопрос уже задавался ранее, см. здесь для лучшего обсуждения.

0 голосов
/ 07 мая 2013

Я тоже сталкивался с подобным требованием для экспорта набора данных в Excel.Я использовал эту библиотеку с открытым исходным кодом .Он основан на стандартах Open XML и не использует Office Interop.Это соответствует моему требованию.Но мое требование было основным.Итак, проверьте, соответствует ли оно вашим требованиям.

...