OpenXML Excel文件损坏,DataValidations

我正在使用WPF应用程序中的OpenXML SDK 2.0创build一个Excel文件。 excel文件有多个工作表,适用于下拉单元格,公式和样式表的数据validation。 它可以很好地创buildSheet1中的大约17,500个和Sheet2中的17,500个Excel行。 但是,当Sheet1和Sheet2的行数达到25,000时,文件就会被破坏,也就是打开文件的时候会出现错误“我们发现file.xlsx中的内容有问题,你想尽可能地恢复?” 如果我恢复文件的数据仍然在那里为所有25000行在这两个表中,但数据validation,即下拉列表不适用于任何单元格。 恢复日志如下,而截图中的修复信息。

error946360_01.xml在文件“D:\ file.xlsx”中检测到错误特性:从/xl/worksheets/sheet.xml数据validationpartRepairedlogging:/xl/worksheets/sheet.xml中的单元信息partRepaired Records:来自/ xl /工作表/ sheet2.xml部分

在这里输入图像说明

对我来说,在添加之前检查一行是否已经存在了, 不知何故,在xlsx文件(对于我来说,它是sheet1.xml)的XML模式,行已经存在。 运行我的代码后,我添加了一个索引已经存在的行。 所以试着用winrar打开你的excel,findsheet1.xml(和你的情况下的sheet2.xml),看看你是否有重复索引的行。 用你的代码生成excel文件,不要用excel打开它,否则excel会删除重复的文件,你不会看到问题。

另一个select是使用Open Xml SDK 2.5生产力工具来validation您的Excel文件(打开之前)