Как создать файл PDF / Excel из базы данных SQL с использованием C # и MVC 2? - PullRequest
3 голосов
/ 19 августа 2011

Мне нужно сделать информацию в базе данных пригодной для использования, позволив пользователю загрузить ее в виде таблицы в формате PDF или Excel (одна из них работает, обе идеально).

Я просмотрел несколько вариантов, но я действительно не могу решить, какой из них использовать, не говоря уже о том, действительно ли какой-либо из этих вариантов действительно полезен. Большинство вариантов, которые я нашел, вращаются вокруг преобразования уже существующих файлов HTML в PDF, что мне не нужно. Кроме того, он должен быть бесплатным . Мои начальники не дали мне бюджета, чтобы потратить на это

Я не уверен, какую еще информацию я должен сюда включить.

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

РЕДАКТИРОВАТЬ: Ого! Огромное спасибо, ребята, за огромный отклик! Я получил массу идей. Это супер полезно. Спасибо!

Ответы [ 7 ]

5 голосов
/ 19 августа 2011

Если вы хотите создать Excel (или также Word), вы можете использовать openXml. Вы можете создать новый документ именно так, как вам нужно, из чистого кода.

Страница OpenXml SDK

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

Решение, которое я обычно предлагаю своим клиентам в этой ситуации, заключается в использовании Sql Server Reporting Services (SSRS). Вы можете использовать элемент управления ReportViewer , входящий в комплект поставки, для создания PDF, электронных таблиц Excel, файлов XML, файлов CSV и других. Если вам нужны специальные отчеты, также доступен Report Builder .

За исключением этого, вы можете использовать OpenXml для генерации электронных таблиц Excel, и есть множество доступных наборов инструментов PDF.

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

Если ваши действия не слишком сложны, вы можете использовать файлы CSV.CSV обозначает значения, разделенные запятыми, и это то, на что это похоже.Вы можете создавать простые таблицы и столбцы, используя запятые.Например, вставьте следующие строки в текстовый файл:

heading1,heading2,heading3
info1,info2,info3
info1,info2,info3

Сохраните текстовый файл как файл .csv и вуаля - таблицу Excel.Очевидно, что эти циклические коллекции объектов чрезвычайно легко построить.Имейте в виду, если вам нужно какое-либо сложное форматирование текста и т. Д., Тогда это не самый лучший вариант.

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

Если вы хотите пойти по пути Excel, я бы порекомендовал эту статью Стивена Вальтера под названием ASP.NET MVC Совет № 2 - создайте собственный результат действия, который возвращает документы Microsoft Excel .Это использует старый трюк написания HTML-документа с типом mime Excel.Это отличается от потоковой передачи собственного файла Excel.И довольно легко изменить рендеринг файла CSV, если вы хотите сократить его и сделать его более универсальным файлом.Просто не забудьте заключить в кавычки все поля, если есть возможность появления запятых.

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

Существует множество решений для создания отчетов, таких как службы отчетов SQL Server (на которые у вас уже может быть лицензия).Взгляните на Reporting (бесплатный || открытый исходный код). Альтернативы Crystal Reports в Winforms , которые, вероятно, можно применить к сети с небольшим количеством сериализации.

Я бы посоветовал подумать о том, чтобы кататься самостоятельно, в зависимости от ситуации.Вы можете использовать pdfsharp для экспорта в PDF и EPPlus для Excel.Они оба очень просты в использовании и, я уверен, доступны в Nuget с парой кликов.

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

http://www.carlosag.net/tools/excelxmlwriter/sample

отметьте, что это может быть полезно для вас

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

Вы просматривали элемент управления ReportViewer, который является частью Visual Studio?

Позволяет экспортировать отчет в формате PDF или Excel.

...