2009-12-23 6 views
0

Я ищу некоторые экономичные решения и/или варианты с открытым исходным кодом для создания отчетов в формате Excel и PDF. Я понимаю, что некоторые из вариантов с открытым исходным кодом могут иметь меньше функциональности и гибкости, чем версии COTS со всеми колоколами и свистами, но есть ли какие-либо варианты там, где они находятся где-то посередине?Экономичные решения .Net для генерации отчетов в Excel и PDF

EDIT: По существу, у меня есть только некоторые базовые HTML-данные о данных в таблицах с некоторыми вычислениями/сводкими данными, но ничего такого, как графики, и т. Д. Затем мне понадобится возможность экспортировать эти HTML-отчеты в Excel и/или PDF.

+1

Можете ли вы описать ваши потребности более подробно? Трудно сделать рекомендацию, не зная, что вы ищете. –

+0

Что означает «рентабельность»? Стоит ли много времени или не стоит много долларов? Сколько стоит ваше время? –

+0

Экономически выгодно с точки зрения цены. Клиент может быть убежден, что он потратит до 500 долларов. – jamesaharvey

ответ

2

Также проверьте Active Reports.Net from Data Dynamics. Это стоит немного больше, чем SQL Server Reporting Services, но его проще использовать, он интегрируется непосредственно в Visual Studio, а выход - это всего лишь код IL в вашей существующей сборке или другая сборка управляемого кода IL, которая становится частью вашего решения. .. который, конечно, свободно распространяемый и бесплатный гонорар.

+0

Это было мое наиболее вероятное рассмотрение, прежде чем я задал вопрос. Спасибо за подкрепление ;-) – jamesaharvey

1

В нашем сценарии мы использовали iTextSharp для генерации PDF и полагались на способность Excel читать таблицу в формате HTML для генерации рассылки.

Доставляет в HTML документ с расширением .xls и Excel считывает его.

5

Если у вас уже есть SQL Server, то у вас есть SQL Server Reporting Services. Он не требует дополнительного лицензирования. Он может экспортироваться в PDF, Excel и многое другое.

Редактировать: Я должен добавить, что есть немного кривой обучения, если вы никогда не работали с инструментами отчетности, такими как Crystal раньше.

2

Если это приложение WINFORMS или WPF (т. Е. НЕ ASP.NET), вы можете получить эту функциональность из встроенных элементов управления REPORTING из .NET. Команда winforms REPORT контролирует экспорт как EXCEL, так и PDF, хотя экспорт EXCEL не является таким же функциональным, как можно было бы ожидать. Имейте в виду, я не уверен, насколько эта функция доступна на ASP.NET без использования полных служб отчетов SQL SERVER.

Сказанное, при довольно широко распространенном применении Office 2007 и форматах на основе XML (которые также доступны в Office 2003), создание документа EXCEL не так уж и трудно, хотя изучение требуемых файлов XML может быть временем потребляя. Хорошей новостью является то, что это можно сделать для приложений winforms/WPF и ASP.NET.

Теперь, чтобы получить PDF-файлы из приложения ASP.NET, у вас есть несколько вариантов, среди которых их создание вручную (PDF является открытым стандартом) или с использованием библиотеки, такой как iText.Net. Лично я всегда опасаюсь iText.Net и его библиотек-сестер, поскольку мой опыт показал, что они что-то вроде ресурсных свиней.

+0

HTML-таблицы -> Возможно, не Winforms или WPF? – Nate

+0

Я начал отвечать до редактирования, поэтому я не видел бит о HTML. Тем не менее, это не обязательно так. С помощью элемента управления браузером использование HTML - это быстрый/грязный способ отображения отформатированных данных пользователю. Вероятно, это не «лучшая практика», но это легко и быстро, а иногда это более важно. –

1

Несколько вариантов с открытым исходным кодом я использовал для отчетов Excel:

Если XLSX является обязательным: ExcelPackage это хорошее начало, но умер от когда разработчик перестал работать на нем. ExML поднялся оттуда и добавил несколько функций. ExML - неплохой вариант, я все еще использую его на нескольких веб-сайтах.

Для всех моих новых проектов я использую NPOI, порт .NET Apache POI. Он еще не поддерживает XLSX, но он является единственным, кто активно развивается. Это также самый быстрый из 3 вариантов.

Также взгляните на другие ответы на this question.

0

Если вам не нужно передавать формулы, только данные в Excel, быстрый и грязный веб-решение заключается в следующем:

ASPX страница:

<%@ Page Language="C#" AutoEventWireup="false" CodeBehind="Download.aspx.cs" Inherits="Myapp.Download" %> 

Код За:

protected void Page_Load(object sender, EventArgs e) 
{ 
Response.Clear(); 
Response.ClearHeaders(); 
Response.ContentType = "application/vnd.ms-excel"; 
Response.ContentEncoding = System.Text.Encoding.Unicode; 
String shippingFileName = "SomeFile" + DateTime.Now.ToString("yyyyMMdd") + ".csv"; 
Response.AddHeader("Content-Disposition", "attachment; filename=" + shippingFileName); 

String data = // Create a string that follows the CVS format (use quotes when necessary) 

Response.Write(data); 
} 

Это откроется в формате excel как CVS.

YMMV, это q & d hack.

Смежные вопросы