有没有人有任何想法,甚至是解决方案,使用从rdlc报告创建的EPPlus打开xlsx文件。
目前,当我尝试这样做时,当我尝试访问工作表时,我得到一个null异常。
// filename is the xlsx file created by exported rdlc to excel
FileInfo newFile = new FileInfo(filename);
ExcelPackage pck = new ExcelPackage(newFile);
// I get error here
pck.Workbook.Worksheets.Add("New Sheet");
答案 0 :(得分:0)
如果您打算在文件中添加错误的构造函数。您现在使用的是用于从模板创建新包。您想要的是这个(没有额外的布尔值)将直接打开文件:
ExcelPackage pck = new ExcelPackage(newFile);
对评论的回应
@ A.Ellwood我刚用你发布的文件试过它,它对我来说很好。这是我使用的代码:
[TestMethod]
public void RDLC_Test()
{
var datatable = new DataTable("tblData");
datatable.Columns.AddRange(new[]
{
new DataColumn("Col1", typeof (int)), new DataColumn("Col2", typeof (int)),
new DataColumn("Col3", typeof (object))
});
for (var i = 0; i < 10; i++)
{
var row = datatable.NewRow();
row[0] = i;
row[1] = i*10;
row[2] = Path.GetRandomFileName();
datatable.Rows.Add(row);
}
var fi = new FileInfo(@"c:\temp\Report1.xlsx");
using (var pck = new ExcelPackage(fi))
{
var workbook = pck.Workbook;
var worksheet = workbook.Worksheets.Add("Sheet1");
worksheet.Cells.LoadFromDataTable(datatable, true);
pck.Save();
}
}