2016-03-09 286 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