我使用PdfReport库来生成.pdf文件格式的报告。PdfReport是一个基于Epplus和iTextsharp的库,这就是为什么我们选择这个库--因为我们想要生成PDF和EXCEL文件。
目前我们能够生成构建的PDF文件,似乎不能生成Excel文件。
在Google上没有太多关于这个库的帮助。
以下是我的代码
public class IListPdfReport
{
public IPdfReportData CreatePdfReport(DataSet mTables)
{
return new PdfReport().DocumentPreferences(doc =>
{
doc.RunDirection(PdfRunDirection.LeftToRight);
doc.Orientation(PageOrientation.Portrait);
doc.PageSize(PdfPageSize.A4);
doc.DocumentMetadata(new DocumentMetadata { Author = "Vahid", Application = "PdfRpt", Keywords = "IList Rpt.", Subject = "Test Rpt", Title = "Test" });
doc.Compression(new CompressionSettings
{
EnableCompression = true,
EnableFullCompression = true
});
doc.PrintingPreferences(new PrintingPreferences
{
ShowPrintDialogAutomatically = true
});
})
.DefaultFonts(fonts =>
{
fonts.Path(System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\arial.ttf"),
System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\verdana.ttf"));
fonts.Size(9);
fonts.Color(System.Drawing.Color.Black);
})
.PagesFooter(footer =>
{
footer.DefaultFooter(DateTime.Now.ToString("MM/dd/yyyy"));
})
.MainTableTemplate(template =>
{
template.BasicTemplate(BasicTemplate.AppleOrchardTemplate);
})
.MainTablePreferences(table =>
{
table.ColumnsWidthsType(TableColumnWidthType.FitToContent);
table.NumberOfDataRowsPerPage(10);
})
.MainTableDataSource(dataSource =>
{
dataSource.DataTable(mTables.Tables[2]);
})
.MainTableSummarySettings(summarySettings =>
{
summarySettings.OverallSummarySettings("Summary");
summarySettings.PreviousPageSummarySettings("Previous Page Summary");
summarySettings.PageSummarySettings("Page Summary");
})
.MainTableColumns(columns =>
{
columns.AddColumn(column =>
{
column.PropertyName("AssetSummaryReportDetailId");
column.IsRowNumber(true);
column.CellsHorizontalAlignment(HorizontalAlignment.Center);
column.IsVisible(true);
column.Order(0);
column.Width(1);
column.HeaderCell("AssetSummaryReportDetailId");
});
columns.AddColumn(column =>
{
column.PropertyName("AssetId");
column.IsRowNumber(true);
column.CellsHorizontalAlignment(HorizontalAlignment.Center);
column.IsVisible(true);
column.Order(1);
column.Width(2);
column.HeaderCell("AssetId");
});
columns.AddColumn(column =>
{
column.PropertyName("CategoryId");
column.IsRowNumber(true);
column.CellsHorizontalAlignment(HorizontalAlignment.Center);
column.IsVisible(true);
column.Order(1);
column.Width(2);
column.HeaderCell("CategoryId");
});
})
.MainTableEvents(events =>
{
events.DataSourceIsEmpty(message: "There is no data available to display.");
})
.Export(export =>
{
// This line here should generate the Excel file, but it is not creating the Excel file
export.ToExcel(description: "Demo", fileName: "usmandemo.xlsx", worksheetName: "worksheet1", footer: "footer");
})
.Generate(data => data.AsPdfFile(string.Format("{0}\\A_RptIListSample-{1}.pdf", AppPath.ApplicationPath, Guid.NewGuid().ToString("N"))));
}发布于 2016-04-13 19:50:13
我从来没有使用过这个库,所以我不能对如何使用它提出任何建议,但是,如果您想创建一个包含数据的xlsx文件,则无需经过他们的服务即可完成此操作
新的Office文件格式称为Office Open XML格式,它在所有office应用程序中都是通用的,这里有一本MSDN指南将为您提供帮助
https://stackoverflow.com/questions/36597235
复制相似问题