SSIS中的Excel连接字符串

问题描述 投票:0回答:2

我整个上午都在看这个,然后我就去了。

我正在设置一个SSIS包来导入一个文件夹中的所有Excel Timesheets,我开始只使用一个文件,但为了简单地添加一个数据流任务,我会回来稍后添加循环。

我创建了与Excel文件的连接,并使用此连接添加了Excel源。另外值得注意的是标题可能会更改,因此取消选择First Row有列名称框。

然后我添加了一个OLE DB目标,所有列都匹配。然后我还在所有这些之前添加了一个SQL任务来截断目标表。

这一切都很好,但是我创建了一个名为ExcelFile的字符串变量,其值为C:\Data\Timesheets\TS1.xlsx

Excel连接管理器的连接字符串是

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Data\Timesheets\TS1.xlsx;Extended Properties="Excel 12.0 XML;HDR=NO"; 

我想要做的就是添加ExcelFile变量来替换源代码,所以我添加了一个带有以下值的连接字符串表达式:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::ExcelFile] + ";Extended Properties='Excel 12.0 XML;HDR=NO';"

这按预期进行了评估,但是当我保存它时,包失败并出现以下错误:

验证错误。 ISSTimesheetImport连接管理器“Excel连接管理器”:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft Access数据库引擎”Hresult:0x80004005描述:“找不到可安装的ISAM。”。

这应该是简单的一点,但它让我疯狂。任何帮助将不胜感激。

excel ssis connection-string
2个回答
1
投票

我刚刚发现了问题,我在某些时候将双引号改为单引号以使表达式得到验证,但是我应该将它们更改为“所以它现在正常工作。”


0
投票

而不是更新连接字符串,在表达式下使用该变量用于ExcelFilePath。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.