Я рекомендую вам использовать DevExpress.XtraReports из DevExpress .Это лицензионный продукт, но он предлагает вам удобный инструментарий для создания великолепных и сложных отчетов.Он хорошо документирован и прост в использовании: после определения шаблона (REPX) его можно заполнить данными, присваивая каждому элементу значение, а также используя функцию [mail merge] , которая будет автоматически замененакак только вы связываете с данными отчет.В основе такой технологии лежит хорошо оформленный дизайн классов.После создания отчета вы можете экспортировать его в наиболее распространенные форматы: XLS, HTML, PDF, RTF ...
public void GenerateReportFile(string rptFileName, string param1, int param2)
{
XtraReport report = null;
try
{
report = new XtraReport();
//-- loads the layout template (repx file)
report.LoadLayout("SomeDirectory\report_template.repx");
//-- assign data to report controls
report.FindControl("Label1", true).Text = string.Format("{0:dd/MM/yyyy}", fecha1);
report.FindControl("Label2", true).Text = string.Format("{0:dd/MM/yyyy}", fecha1);
//-- gets data from some Data Acces Layer method and assig it to the report DataSource property
DALReport dal = new DALReport();
report.DataSource = dal.GetReport1Data(ExpEmp, param1, param2);
report.DataMember = "data";
report.ExportToPdf(rptFileName, options);
}
catch { throw; }
finally { if (report != null) { report.Dispose(); } report = null; }
}
Для получения дополнительной информации обратитесь к: http://demos.devexpress.com/XtraReportsDemos/
Существует еще одна бесплатная библиотека для .Net iTextSharp , эта библиотека изначально была написана для Java, а затем была переведена на C # для использования .Net.Библиотека в основном предназначена для создания документов PDF, но некоторые версии также поддерживают создание документов XLS.