Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenXML Excel文件损坏、数据验证_Excel_File_Openxml_Corruption - Fatal编程技术网

OpenXML Excel文件损坏、数据验证

OpenXML Excel文件损坏、数据验证,excel,file,openxml,corruption,Excel,File,Openxml,Corruption,我正在使用OpenXMLSDK2.0从WPF应用程序创建一个excel文件。excel文件有多个工作表、下拉单元格的数据验证、公式和应用的样式表。在Sheet1中创建17500左右的excel行以及在Sheet2中创建17500左右的excel行非常有效。但是,当Sheet1和Sheet2的行数都达到25000时,文件会损坏,即打开文件时会出现错误“我们发现file.xlsx中的内容有问题。是否要尽可能多地恢复?”如果我恢复文件,两张表中所有25000行的数据仍然存在,但是数据验证(即下拉列表)

我正在使用OpenXMLSDK2.0从WPF应用程序创建一个excel文件。excel文件有多个工作表、下拉单元格的数据验证、公式和应用的样式表。在Sheet1中创建17500左右的excel行以及在Sheet2中创建17500左右的excel行非常有效。但是,当Sheet1和Sheet2的行数都达到25000时,文件会损坏,即打开文件时会出现错误“我们发现file.xlsx中的内容有问题。是否要尽可能多地恢复?”如果我恢复文件,两张表中所有25000行的数据仍然存在,但是数据验证(即下拉列表)不会应用于任何单元格。恢复日志如下所示,而修复消息显示在屏幕截图中

error946360_01.xml在文件“D:\file.xlsx”中检测到错误已删除功能:来自/xl/worksheets/sheet.xml的数据验证零件修复记录:来自/xl/worksheets/sheet.xml的单元信息零件修复记录:来自/xl/worksheets/sheet2.xml零件的单元信息


对我来说,在添加行之前检查行是否已经存在就可以了。 不知怎的,在xlsx文件的xml模式中(对我来说是sheet1.xml),行已经存在了。在运行代码之后,我添加了一行索引,该索引已经存在。 因此,请尝试使用winrar打开excel,查找sheet1.xml(本例中为sheet2.xml),并查看是否有重复的行索引。 使用您的代码生成excel文件,不要使用excel打开,否则excel将删除重复项,您将看不到问题


另一个选项是使用

为我验证excel文件(打开之前),在添加行之前检查行是否已经存在。 不知怎的,在xlsx文件的xml模式中(对我来说是sheet1.xml),行已经存在了。在运行代码之后,我添加了一行索引,该索引已经存在。 因此,请尝试使用winrar打开excel,查找sheet1.xml(本例中为sheet2.xml),并查看是否有重复的行索引。 使用您的代码生成excel文件,不要使用excel打开,否则excel将删除重复项,您将看不到问题

另一个选项是使用