我有一台能够使用导入向导创建和运行Excel导入任务的服务器。我正在尝试使用我在该服务器上开发的visual Studio 2010 Integration Services包来自动执行该过程。
尝试设计包时会出现问题。我添加了一个excel连接,并将其指向本地磁盘上的Excel文件(我已使用导入向导成功导入的同一文件)。当我将Excel源添加到DataFlow并指定excel连接时,当我转到Excel表格下拉列表时,我只看到“无法加载表或视图”并收到以下错误。
“无法检索连接管理器的表信息。 无法使用连接管理器连接到源...“
我无法在任何地方找到此错误,我不知道它为什么会失败。该目录与Authenticated用户共享,该文件未在使用中。
任何想法如何调试此错误?我知道在64位模式下运行此问题可能存在问题,但这是否适用于开发?
我应该补充一点,它是一个excel 2007文件.XLSX,连接设置为Excel 2007。
答案 0 :(得分:40)
似乎没有安装32位版本的Excel。请记住,SSDT是一个32位IDE。因此,当从SSDT访问数据时,使用32位数据提供者。在SSDT之外运行程序包时,它以64位模式运行(并非总是如此,但主要是)并使用64位数据提供程序。
请记住,如果您想以64位运行程序包(您应该以此为目标),则需要32位数据提供程序(用于SSDT中的开发)以及64位数据提供者(用于在生产中执行包)。
我从以下位置下载了32位访问驱动程序:
安装完成后,我可以看到工作表
来源:
答案 1 :(得分:27)
解决方法是,我将excel文件保存为excel 97-2003然后它正常工作
答案 2 :(得分:7)
我今天也遇到了这个问题,但是找到了使用Excel 97-2003的不同解决方案。根据{{3}},问题是SSDT(SQL Server数据工具)是一个32位应用程序,只能使用32位提供程序;但您可能安装了64位ACE OLE DB提供程序。你可以尝试安装32位提供商,但你不能同时拥有64和64位提供商。 32版同时安装。 Maderia建议(我发现对我有用)的解决方案是在我导入/导出Excel 2007文件的任务中设置DelayValidation = TRUE。
答案 3 :(得分:4)
简单的解决方法是打开文件,只需按Excel中的保存按钮(无需更改格式)。一旦保存在excel中,它将开始工作,你应该能够在DFT中看到它的表格。
答案 4 :(得分:4)
本文Extracting Data From Excel with SSIS的建议为我解决了这个问题。
我下载了MS Access数据库引擎2010 32位驱动程序 来自该文章中的链接。
还为调试Run64BitRuntime = False
在SQL Server 2014 SSMS(集成服务目录 - > SSISDB - >环境 - >验证中所有程序包的项目复选框32 bit Runtime
。
我的SSIS包现在在VS 2013和SQL Server 2014环境中都有效。
答案 5 :(得分:3)
您需要使用旧版本的数据连接驱动程序(2007 Office System Driver: Data Connectivity Components)并在连接管理器配置窗口中选择Excel版本2007-2010。 我假设Office 2016的最新数据连接驱动程序已损坏
答案 6 :(得分:1)
如下所述:
解决方案: 转到https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftAnalysisServicesModelingProjects并安装最新版本,该版本中有修复程序可以解决此问题。
此问题的修复程序已在内部实现,正在准备发布。一旦可供下载,我们将为您更新。目前,请从https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftAnalysisServicesModelingProjects安装最新的SSAS,以解决此问题。抱歉给您带来不便。
答案 7 :(得分:0)
我的答案与@biscoop的答案非常相似,但我会详细说明可能适用于该问题或其他人。
我有一个.xls,它是从我们的一个webapps中提取的。 Excel连接不起作用(错误消息:“无法加载表或视图”)。作为旁注,在打开文件时,会出现警告,指出该文件来自在线来源,并且内容需要激活。
我尝试将同一个文件保存为.xlsx并且有效。 我试图用另一个名称保存同一个文件作为.xls,它也有效。 因此,作为最后一次测试,我只打开了源.xls文件,单击“保存”并且连接正常。
简短回答:试试看是否打开文件并保存就可以了。
答案 8 :(得分:0)
我发现在Excel 365中创建的excel文件与任何可用版本都不兼容。我重新保存了97-2003版本的excel文件,当然在下拉列表中选择了该版本,然后它读取了文件。
答案 9 :(得分:0)
在研究了所有地方之后,我终于找到了临时解决方案。因为我尝试了所有安装访问驱动程序的解决方案,但仍然遇到相同的问题。
对于Excel来源, 在执行此步骤之前,您需要更改设置。将Excel文件另存为2010 format.xlsx
还设置用于调试Run64BitRuntime = False的项目配置属性
我正在使用Visual Studio 2017,SQL Server 2017,Office 2016和Microsoft Access数据库2010引擎32位。 OS Windows 10 64位。
这是临时解决方案。因为许多人正在寻找这种类型的问题。最终,我弄清楚了该解决方案在任何网站上均不可用。
答案 10 :(得分:0)
答案 11 :(得分:0)
您可以尝试以下操作:
卸载office365
然后仅安装Access Database Engine 2016 Redistributable 64位
还设置了用于调试Run64BitRuntime = False的项目配置属性
应该可以。
答案 12 :(得分:0)
我遇到了同样的问题。我认为@Rishit的回答对我有所帮助。 此问题与32位/ 64位版本的驱动程序有关。我试图使用SSIS读取.xlsx文件到SQL Server表
答案 13 :(得分:-1)
对于我来说,“ Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。您可以在这里https://www.microsoft.com/en-us/download/confirmation.aspx?id=13255