基于没有 Excel 功能的 Excel 文件更新表格?
Posted
技术标签:
【中文标题】基于没有 Excel 功能的 Excel 文件更新表格?【英文标题】:Updating a table based on an Excel file without excel functionality? 【发布时间】:2016-04-25 22:33:11 【问题描述】:好的,所以我基本上有一个巨大的 Excel 列表,其中包含两列,ID 和 Value。我想在我的 SQL 中更新一个 Employee 表,并在该表中设置一个等于 excel 文件中的值的列,其中 excel 文件的 ID 等于 Employee 表的 ID。
我查看了其他类似的问题,他们使用 OpenRowSet 和其他 SQL excel 功能,但不幸的是,我们的 DBA 似乎没有安装任何这些功能。我可以做些什么来替代更新该表?
至于我所尝试的,我创建了两个 XML 列表并将数据库的每一列分隔到一个临时表中,所以现在我有两个临时表,一个用于每个 excel 列,但现在我正在阅读结合两个没有通用标识符的表是非常糟糕的做法,所以我回到了第一格。
【问题讨论】:
我理解正确吗?您不允许向/在 SQL 服务器上发送/执行 T-SQL 命令吗?或者您实际上是否允许直接查询 SQL 服务器,但在 VBE 中您找不到对Microsoft ActiveX Data Objects 2.X or 6.0 Libraray
的引用?或者是别的什么?
我找不到参考是问题所在。
如果您找不到 ADO 库(通常随 Windows 提供),那么您可以从以下源免费安装它:support.microsoft.com/en-us/kb/168335 但在此之前。尝试运行以下代码行,看看是否收到错误消息:Dim conn1 As Object: Set conn1 = CreateObject("ADODB.Connection")
。如果运行没有问题,那么您肯定已经安装了 ADO
并且可以使用它。
对不起,我对这些数据库中的一些东西不是很了解。我尝试在我的计算机(Windows 10)上安装它,但安装程序没有运行。看起来它适用于较旧的操作系统。
您是否安装了 MS Office(包括 MS Access)?如果是这样,ADO
也会自动附带 MS Access:allenbrowne.com/ser-38.html 另外,您是否尝试过运行上述代码行?基本问题是:如果您不能使用 ADO 或 DAO 向 SQL 服务器发送查询,那么您无法将表发送到服务器(除非您的管理员在 SQL 服务器上运行 SSIS 并将包写入阅读您的文件)。然而,我严重怀疑它们都不可用!
【参考方案1】:
您可以使用 SSIS 轻松做到这一点。您可以使用 Excel 源、查找转换或合并连接和 OLE DB 目标。
【讨论】:
以上是关于基于没有 Excel 功能的 Excel 文件更新表格?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Excel 实现 Excel-CSV 文件导入导出功能