我有一个使用SSIS生成的xlsx文件。此文件的数据是通过数据流任务写入的,其中xlsx文件是oledb目标。我使用以下连接字符串作为OLEDB连接的表达式:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ @[User::ExcelPath] +";
Extended Properties=\"Excel 12.0 Xml;HDR=YES\";"
文件在数据流任务之前打开就好了。在数据流任务之后,我得到如下对话框:
当我点击“是”时,我收到另一条消息:
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
答案 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。瞧!
那是我一生的两个小时,我再也回不来了。