1

我刚开始使用EPPLus Lib 通过 C# 创建“复杂”工作簿,但在尝试创建两个数据透视表时遇到了一些麻烦。

第一个创建得很好,但是当我尝试创建第二个时它不会抛出任何异常但是当我尝试使用 excel 打开 worknook 时它说

“Excel 在 'myworkbook.xlsx' 中发现不可读的内容。是否要恢复此工作簿的内容?如果您信任此工作簿的来源,请单击是”

当我按“是”时:

修复日志 -> 删除功能:来自 /xl/pivotTables/pivotTable2.xml 部分(数据透视表 > 视图)的数据透视表报告 删除记录:来自 /xl/workbook.xml 部分(工作簿)的工作簿属性 修复记录:来自 /xl/workbook 的工作簿属性.xml 部分(工作簿)

这是我构建的代码:

CreatePivotTable("Pivot1", "Pivot1", rng1);
CreatePivotTable("Pivot2", "Pivot2", rng2);
    public void CreatePivotTable(string pivotSheet, string pivotName, ExcelRangeBase srcRange)
    {
        if (m_wb.Worksheets[pivotSheet] != null)
            m_wb.Worksheets.Delete(pivotSheet);

        var ws = m_wb.Worksheets.Add(pivotSheet);

        var pivot = ws.PivotTables.Add(ws.Cells["A1"], srcRange, pivotName);            

    }

有任何想法吗?

谢谢!

4

1 回答 1

0

出了什么问题,我没有把它放在我的问题中是我在前一步重新打开了工作簿,如下所示:

    CreatePivotTable("Pivot1", "Pivot1", rng1);
    Save();
    CreatePivotTable("Pivot2", "Pivot2", rng2);

    private void Save()
    {
        m_writer.Save();
        m_writer.OpenWorkbook ();
    }

并且由于 epplus 的保存方法关闭了工作簿,程序丢失了某种参考,或者只是丢失了一些信息。

简而言之,要正确使用 epplus,您应该在保存和关闭工作簿之前写下您需要的所有内容,重新打开并不好。

谢谢你。

于 2013-05-22T17:50:11.640 回答