【问题标题】:SSIS Excel connection challengesSSIS Excel 连接挑战
【发布时间】:2023-05-30 16:48:01
【问题描述】:

如果打开了 excel 文件,我可以毫无问题地完成我的任务

如果 Excel 文件已打开,则没有错误导入任务完美运行。

如果 Excel 文件已关闭,则会出现以下错误

无法获取连接“Excel Connection Manager 4”。连接可能未正确配置,或者您可能没有此连接的正确权限。

关于如何处理的任何想法

【问题讨论】:

  • 你读过MSDN Docmentation这方面的内容吗,也许你有一些配置不正确这里是链接msdn.microsoft.com/en-us/library/ms139836.aspx
  • 它适用于一堆 excel 文件,没有任何问题。我循环遍历文件夹中的不同 excel 文件(.xlsx 文件)以编程方式设置连接和属性。
  • 好的,所以可能是 Excel 连接管理器的问题,或者您遇到了 COMObjectRelease 问题。那么我对您的问题仍然有些困惑。您可以使用 TaskManager 验证这一点吗?查看它是否在运行这些 Excel 文件时释放所有实例..?还有自定义代码可以添加到SSIS 包后面的代码中吗?
  • 1.我不确定 COMObjectRelease 问题。 2. 任务管理器没有释放所有实例,所以我手动释放了它们,我确实重新运行了 ssis 任务,错误信息相同。 3. 是的,我可以添加自定义代码,但不确定要添加什么。请记住,如果 EXCEL 已打开,SSIS 任务将正常工作,我遇到了关闭的 excel 文件的问题,而且仅在某些 excel 文件上也存在问题,不知道为什么会有这种差异

标签: c# excel ssis ssis-2012


【解决方案1】:
Try to specify these extra parameters in your Excel connection string: 
  Mode=Read; ReadOnly=True
 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename; Extended Properties="EXCEL 8.0;HDR=YES; Mode=Read; ReadOnly =True;"

也试试这个:

听起来你的包中有一个 Excel 连接字符串由于某种原因无效。试试:

  1. 在 XML 编辑器中打开您的包(.DTSX 文件)(我使用 XML Marker - 它既好又简单)
  2. 搜索“动态 Excel 连接管理器”条目。
  3. 看看你能不能识别出里面的连接字符串。
  4. 修复它并保存

【讨论】: