OpenXML Excel文件损坏,DataValidations

时间:2016-03-09 05:57:00

标签: excel file openxml corruption

我正在使用WPF应用程序中的OpenXML SDK 2.0创建一个excel文件。 excel文件具有多个工作表,应用了下拉单元格,公式和StyleSheets的数据验证。它可以在Sheet1中创建大约17,500的excel行,在Sheet2中创建17,500行。但是,当Sheet1和Sheet2的行数达到25,000时,文件被破坏,即在打开文件时出现错误"我们发现file.xlsx中的内容有问题。你想尽可能多地恢复吗?"如果我恢复文件,则两张表中的所有25,000行的数据仍然存在,但是数据验证即下拉列表不适用于任何单元格。恢复日志如下,屏幕截图中的修复消息。

error946360_01.xml在文件中检测到错误' D:\ file.xlsx'删除功能:来自/xl/worksheets/sheet.xml的数据验证partRepaired Records:/xl/worksheets/sheet.xml中的单元格信息partRepaired Records :来自/xl/worksheets/sheet2.xml部分的单元信息

enter image description here

1 个答案:

答案 0 :(得分:2)

对我来说,在添加行之前检查行是否已经存在就行了。 不知何故,在xlsx文件的xml架构中(对我而言,它是sheet1.xml),行已经存在。在运行我的代码之后,我添加了一个包含索引的行,该索引已经存在。 因此,尝试使用winrar打开excel,找到sheet1.xml(在您的情况下为sheet2.xml),看看是否有重复的行索引。 使用您的代码生成excel文件,不要使用excel打开它,否则excel会删除重复项,但您不会看到问题。

另一种选择是使用Open Xml SDK 2.5 Productivity Tool

验证您的Excel文件(打开之前)