EPPlus 无法打开 RDLC 渲染到 EXCELOPENXML

EPPPlus cannot open RDLC rendered to EXCELOPENXML

有没有人知道使用根据 rdlc 报告创建的 EPPlus 打开 xlsx 文件,甚至有解决方案。

目前,当我尝试执行此操作时,当我尝试访问工作表时出现空异常。

// 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");

如果您打算添加到文件中,那么您使用了错误的构造函数。您现在使用的是根据模板创建新包。你想要的是这个(没有额外的布尔值),它将直接打开文件:

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