EPPPlus无法打开呈现给EXCELOPENXML的RDLC

时间:2015-10-21 13:56:03

标签: rdlc epplus

有没有人有任何想法,甚至是解决方案,使用从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");

1 个答案:

答案 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();
    }
}