繁体   English   中英

将 Excel 命名范围导入 SQL 数据库

[英]Import Excel Named Range into SQL Database

我有一个 excel 文件“test.xlsx”,其中包含一个名为“SheetName”的工作表,其中包含一个名为“NamedRange”的命名范围。

我想在 Visual Basic 中编写一个脚本来将这些命名范围导入 SQL 数据库。 到目前为止,我已经尝试过 openrowset,但我找不到引用命名范围的正确语法。 不起作用的查询示例:

USE [Test_DataBase]
GO
SELECT * INTO New
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=D:\Test.xlsx', NamedRange);
GO

错误是:链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”不包含表“NamedRange”。 该表不存在或当前用户对该表没有权限。

但是,我可以使用以下方法导入完整的工作表:

USE [Test_DataBase]
GO
SELECT * INTO New
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=D:\Test.xlsx', SheetName$);
GO

我也试过:

USE [Test_DataBase]
GO
SELECT * INTO New
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=D:\Test.xlsx', SheetName$NamedRange);
GO

但这会产生以下错误:链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”不包含表“SheetName$NamedRange”。 该表不存在或当前用户对该表没有权限。

那么,openrowset 真的可以用来引用命名范围吗? 如果没有,我可以使用其他方法吗?

*这是我的第一个问题,我希望我已经足够清楚并且没有违反任何规则!

克雷格

  1. 您可以使用SSIS。

  2. 您可以使用向导的“导入数据”:右键单击DB-> Tasks- > Import Data

在此处输入图片说明

首先从下面的链接安装驱动程序。

https://www.microsoft.com/en-us/download/details.aspx?id=13255

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO


USE YourDatabase;
GO
SELECT * INTO Table1
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0; Database=C:\your_path\test.xlsx', [Sheet1$nr]);
GO
-- 'nr' is your named range

有关更多详细信息,请参见这些链接。

http://www.ashishblog.com/importexport-excel-xlsx-or-xls-file-into-sql-server/

https://www.red-gate.com/simple-talk/sql/t-sql-programming/questions-about-using-tsql-to-import-excel-data-you-were-too-shy-to-问/#第六

https://www.excel-sql-server.com/excel-sql-server-import-export-using-vba.htm

dbWb = ThisWorkbook.FullName dsh = "SheetName$"

xlrow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & dbWb & "].[" & dsh & "A1:X" & xlrow & "] as aa"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM