ASP.net MVC Экспорт в Excel - PullRequest
       7

ASP.net MVC Экспорт в Excel

0 голосов
/ 16 августа 2011

В настоящее время я экспортирую в Excel, используя старый трюк HTML, где я установил тип MIME в application / ms-excel. Это дает дополнительное преимущество красиво отформатированных таблиц, однако, негативом документа Excel не является собственный формат Excel.

Я мог бы экспортировать это как CSV, но тогда это не было бы отформатировано.

Я прочитал краткие фрагменты, которые вы можете экспортировать как XML для создания документа Excel, но не могу найти слишком много информации по этому вопросу. Кто-нибудь знает какие-либо учебные пособия и / или преимущества этого? Можно ли отформатировать таблицы с помощью этого метода?

Спасибо.

Ответы [ 5 ]

2 голосов
/ 16 августа 2011

Самый простой способ, вы можете проанализировать вашу таблицу и экспортировать ее в формате Excel XML, смотрите это, например: http://blogs.msdn.com/b/brian_jones/archive/2005/06/27/433152.aspx

Позволяет форматировать таблицу по вашему желанию (границы, шрифты, цвета, я думаю, даже формулы), и Excel распознает ее как собственный формат Excel. Кроме того, вы можете использовать другие программы, которые могут импортировать Excel XML (например, Open Office, Excel Viewer и т. Д.), И вам не нужно устанавливать компоненты Office на сервере.

1 голос
/ 12 февраля 2013

Билл Штернбергер опубликовал здесь очень простое решение: экспорт в Excel или CSV из asp.net MVC

1 голос
/ 16 августа 2011

Проверьте ExcelXmlWriter .

Мы использовали его в течение некоторого времени, и он работает хорошо.Однако есть некоторые недостатки в формате xml.Поскольку ваши конечные пользователи вряд ли будут иметь расширение .xml, связанное с Excel, вам придется скачивать файлы в формате .xls с типом mime Excel.Когда пользователь открывает загруженный таким образом файл, он получает предупреждение о том, что файл не в формате xls.Если они щелкают по нему, файл открывается нормально.

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

0 голосов
/ 31 июля 2015

Я использую Spreadsheet Light, библиотеку с открытым исходным кодом, которая обеспечивает невероятно простое создание, обработку и сохранение листа Excel из C #.Вы можете заставить контроллер MVC / WebAPI создавать файл и либо

  1. Возвращать URL-ссылку на сохраненный файл Excel на страницу и вызывать Excel, чтобы открыть его с объектом ActiveX
  2. Возврат потока содержимого данных на страницу
  3. Возврат URL-ссылки на вызывающую страницу, чтобы открыть диалоговое окно «Открыть / сохранить как»

http://spreadsheetlight.com/

0 голосов
/ 24 октября 2014

Только сегодня мне пришлось написать процедуру, которая экспортировала данные, чтобы преуспеть в приложении MVC.Вот детали, чтобы кто-то мог извлечь выгоду в будущем, сначала пользователь должен был выбрать некоторые диапазоны дат и области для отчета.На обратной стороне этот метод был на месте, с TheModelTypeList, содержащим данные из LINQ / Entity Framework / SQL Query, возвращающие строгие типы:

        if (ExportToExcel) {
            var stream = new MemoryStream();
            var serializer = new XmlSerializer(typeof(List<SomeModelType>));
            serializer.Serialize(stream, TheModelTypeList);
            stream.Position = 0;
            FSR = new FileStreamResult(stream, "application/vnd.ms-excel");
        }

Единственный улов на этот тип был неизвестный тип файлапри открытии так, что система предложила приложению открыть его ... это результат того, что контент представляет собой XML .... Я все еще работаю над этим.

...