访问通过 Xlwt 库 (Python) 生成的 .dtsx 中的 Excel 文件会引发错误 CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER

Accessing an Excel file in a .dtsx that was generated through Xlwt library (Python) raises error CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER

我有一个用 Python 编写的网络抓取工具,从页面的 HTML 获取原始数据并将其写入 97-2003 工作簿 Excel 文件,使用 Xlwt图书馆。然后我有一个包含一些任务的 .dtsx 文件,其中一个是 Excel 源任务,用于从 Excel 文件中获取数据。稍后,该数据被插入 SQL 服务器 table.

如果我尝试使用上述任务访问我新生成的 Excel 文件,我会收到 OLE DB 错误

External table is not in the expected format

而且我不能 运行 我的 dtsx。但是,如果我通过我的文件资源管理器手动访问 Excel 文件,打开它并再次关闭它(甚至不需要保存它),突然我的 SSIS 任务工作没有问题,获取所有列和所有信息。什么可能导致此行为?

External table is not in the expected format

当 Excel 文件已损坏且无法通过 Access 数据库引擎(OLE DB 提供程序)打开时会发生上述错误,即使您可以从 Excel 打开该文件。

一般来说,解决办法是手动打开这个Excel,它会自动修复它。在类似情况下,如果该过程重复多次,您可以使用 Interop.Excel 库使用 C# 脚本自动打开和修复 excel。

附加信息

  • What .xlsx file format is this?