[英]Adding data to the existing excel sheet using Epplus LoadFromCollection() is corrupting the Excel Workbook
[英]Can't save Excel sheet after adding data if the workbook contains a Pivot table
我們正在嘗試構建一個默認的Excel儀表板,供用戶下載。 在下載Excel工作表時,我們希望使用其數據填充文件中的工作表。
我們正在使用EPPlus來處理Excel工作表。
簡而言之,工作表的結構如下:
Sheet A
(數據透視表,數據透視圖和切片器) Sheet B
=OFFSET(Data!$A$1;0;0;COUNTA(Data!$A:$A);COUNTA(Data!$1:$1))
的命名范圍僅適應於我們插入的數據集的大小那張紙 Sheet A
所有報告元素都配置為從數據模型中加載數據 總體而言,只要我們用數據手動填充工作Sheet B
,此方法就很好用。 當我們嘗試使用EPPlus填充數據時,嘗試保存文件時出現錯誤:
The cachesource is not a worksheet
通過反復試驗,我們剝離了零件表以找出問題的原因。 我們懷疑可能是切片器,使用Power Query / Data Model或具有指定范圍的技巧。 但是,這些似乎都不是問題-如果我們從工作表中刪除所有數據透視表,則可以保存工作簿。 令我感到驚訝的是,我們能夠很好地使用數據透視圖,僅是導致問題的表格。
關於如何避免EPPlus出現此問題的任何建議? 現在,我們繼續不使用數據透視表,希望在某些時候返回它們:)
錯誤-“ The cachesource is not a worksheet
”可能是由於Excel將范圍內的源數據識別為工作表中的范圍。
您可以使用ws.ListObjects.Add
將表中范圍內的轉儲數據更改為表格B。 每當刷新數據透視表時,它都應自動獲取表中的所有數據。
如果有幫助,還請檢查相關問題中可用的另一種方法-將表而不是范圍定義為PivotTable 'cacheSource'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.