首页 文章

使用EPPlus创建多个pivottable

提问于
浏览
1

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

第一个创建很好,但是当我尝试创建第二个时,它不会抛出任何异常但是当我尝试使用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);            

    }

有任何想法吗?

谢谢!

1 回答

  • 0

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

    CreatePivotTable("Pivot1", "Pivot1", rng1);
        Save();
        CreatePivotTable("Pivot2", "Pivot2", rng2);
    
        private void Save()
        {
            m_writer.Save();
            m_writer.OpenWorkbook ();
        }
    

    并且由于epplus的save方法关闭了工作簿,程序丢失了某种引用或者只是丢失了一些信息 .

    简而言之,要正确使用epplus,您应该在保存和关闭工作簿之前编写所需的一切,重新打开它并不好 .

    谢谢 .

相关问题