2013-05-21 85 views
1

我剛剛開始使用EPPLus Lib來通過C#創建「複雜」工作簿,而我在嘗試創建兩個數據透視表時遇到了一些麻煩。使用EPPlus創建多個透視表

第一個創建了罰款,但是當我嘗試創建第二個它沒有拋出任何異常,但是當我嘗試使用Excel它說

「Excel中發現,在「myworkbook無法讀取內容打開worknook .xlsx等。你要 恢復此工作簿的內容如果您信任這個 工作簿的來源,clickYes」

當我按?‘是’:

修復日誌 - > 刪除功能:從已移除部分/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

什麼是錯的,我沒有把它放在我的問題是,我是前重開步工作簿,就像這樣:

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

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

而且由於epplus的保存方法關閉工作簿時,程序丟失某種參考或只是迷失了一些信息。

總之,要正確使用epplus,您應該在保存和關閉工作簿之前編寫所需的所有內容,但不宜重新打開。

謝謝。