2016-03-09 283 views
0

我正在使用WPF應用程序中的OpenXML SDK 2.0創建Excel文件。 excel文件包含多個工作表,適用於下拉單元格,公式和樣式表的數據驗證。它可以很好地創建Sheet1中大約17,500和Sheet2中大約17,500的Excel行。但是,當Sheet1和Sheet2的行數達到25,000時,文件會被破壞,即在打開文件時會出現錯誤「我們發現file.xlsx中的內容存在問題。是否要儘可能多地恢復?」如果我恢復文件,數據仍然存在於兩張表中的所有25,000行,但數據驗證(即下拉列表)不適用於任何單元格。恢復日誌如下,而截圖中的修復信息。OpenXML Excel文件損壞,DataValidations

error946360_01.xml在文件'D:\ file.xlsx'中檢測到錯誤刪除特性:從/xl/worksheets/sheet.xml數據驗證partRepaired記錄:來自/xl/worksheets/sheet.xml的單元信息partRepaired Records :從/xl/worksheets/sheet2.xml部分

enter image description here

回答

1

對於我來說,檢查是否一行被加入它的伎倆之前已經存在的小區信息。 不知何故,在xlsx文件的xml模式中(對於我來說它是sheet1.xml),行已經存在。運行我的代碼後,我添加了一個已存在的索引行。 因此,嘗試用winrar打開你的excel,找到sheet1.xml(和你的情況下的sheet2.xml),看看你是否有行重複的索引。 用你的代碼生成excel文件,不要用excel打開它,否則excel會刪除重複的文件,你不會看到問題。

另一種選擇是驗證你的excel文件(打開之前)Open Xml SDK 2.5 Productivity Tool