使用EPPlus创build多个透视表
我刚开始使用EPPLus Lib来通过C#创build“复杂”的工作簿,而我试图创build两个数据透视表时遇到了一些麻烦。
第一个创build罚款,但是当我尝试创build第二个它不会抛出任何exception,但是当我尝试使用Excel打开worknook它说
“Excel在'myworkbook.xlsx'中发现了不可读的内容。是否要恢复此工作簿的内容?如果您信任此工作簿的源,请单击”
当我按“是”时
修复日志 – >已删除function:数据透视表来自/xl/pivotTables/pivotTable2.xml部分的数据透视表(数据透视表>视图)已删除logging:/xl/workbook.xml工作簿属性部分(工作簿)已修复logging:/ xl / workbook中的工作簿属性.xml部分(Workbook)
这是我build立的代码:
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); }
有任何想法吗?
谢谢!
什么错了,我没有把它放在我的问题是,我重新打开工作簿之前,像这样:
CreatePivotTable("Pivot1", "Pivot1", rng1); Save(); CreatePivotTable("Pivot2", "Pivot2", rng2); private void Save() { m_writer.Save(); m_writer.OpenWorkbook (); }
而且由于epplus的保存方法closures了工作簿,程序失去了某种参考或者只是迷失了一些信息。
简而言之,要正确使用epplus,在保存和closures工作簿之前,您应该写下所有需要的东西,但不宜重新打开。
谢谢。