xlsx错误:“删除记录:来自/xl/workbook.xml部分的命名范围”,当试图解决错误时

时间:2013-08-30 18:24:54

标签: xml excel ssis xlsx

我有一个使用SSIS生成的xlsx文件。此文件的数据是通过数据流任务写入的,其中xlsx文件是oledb目标。我使用以下连接字符串作为OLEDB连接的表达式:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ @[User::ExcelPath] +";
Extended Properties=\"Excel 12.0 Xml;HDR=YES\";"

文件在数据流任务之前打开就好了。在数据流任务之后,我得到如下对话框:

enter image description here

当我点击“是”时,我收到另一条消息: enter image description here

xml文件的内容是

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">       <logFileName>error072840_02.xml</logFileName><summary>Errors were detected in file   'C:\output\documentId-1.xlsx'</summary><removedRecords summary="Following is a list of removed records:"><removedRecord>Removed Records: Named range from /xl/workbook.xml part (Workbook)</removedRecord></removedRecords></recoveryLog>

我无法弄清楚导致此错误的确切原因。任何帮助将不胜感激。 TIA

7 个答案:

答案 0 :(得分:9)

得到了解决。我真的不知道原因。做了一些研究,并了解到与标签名称相关的内容可能会导致此问题。我不得不使用'tab'和'tab(2)'之类的标签。 xlsx可能会将它们视为相同的名称。

答案 1 :(得分:9)

当我使用EPPlus来自定义现有模板时,我遇到了这个问题。对我来说,问题出在模板本身,因为它包含对查找表的无效引用。我在公式中找到了这个 - &gt;名称经理。

如果您遇到此问题,我建议您检查模板。

答案 2 :(得分:2)

在我的情况下,类似的错误是由超过30个字符的工作表(标签)名称引起的。

答案 3 :(得分:0)

可能是标签名称中的特殊字符,您可以使用标签名称定义名称范围。 例如选项卡名称是&#34; A(1)&#34;,只需将其更改为&#34; A(1)&#34;

答案 4 :(得分:0)

就我个人而言,空格/特殊字符在标签(Sheet)名称中无关紧要。命名范围本身不能包含空格/特殊字符,因为它被视为变量

答案 5 :(得分:0)

对我来说,这是一个带有为宏分配的值的按钮,例如:'MyMacro(“ MyParam”)'

答案 6 :(得分:0)

在我的情况下,有十几个对命名范围的引用,但是它们没有出现在“公式->名称管理器”窗口中。我必须将xlsx文件重命名为.zip文件,打开/xl/workbook.xml,手动删除整个defineName节点,然后将其重命名为.xlsx。瞧!

那是我一生的两个小时,我再也回不来了。