我刚开始使用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);
}
有什么想法吗?
谢谢!
答案 0 :(得分:0)
出了什么问题,我没有把它放在我的问题中,因为我之前正在重新打开工作簿,就像这样:
CreatePivotTable("Pivot1", "Pivot1", rng1);
Save();
CreatePivotTable("Pivot2", "Pivot2", rng2);
private void Save()
{
m_writer.Save();
m_writer.OpenWorkbook ();
}
由于epplus的save方法关闭了工作簿,程序失去了某种参考,或者只是丢失了一些信息。
简而言之,要正确使用epplus,您应该在保存和关闭工作簿之前编写所需的所有内容,但重新打开它并不好。
谢谢。