如何将多个Excel列导入单个SQL Server列?

时间:2011-09-21 20:40:15

标签: sql-server excel

我们将来自不同来源的大量数据文件(主要是Excel,有时是CSV)导入SQL Server数据库。数据文件有一些共同的字段(名称,地址等),通常还有其他字段 - 我们需要/使用的一些字段,以及我们不需要的字段。

如何导入文件中的所有数据 - 将common / required字段插入相关列,还将其他剩余列合并为单个列(text或varchar(max))?这可能吗?我不介意什么版本的Excel / SQL Server。

所以我可能会收到一个源文件,例如

FirstName, LastName, AddressLine1, City, ColumnE, ColumnF, DateColumn, ColumnH

并将其作为

存储在SQL Server中
FirstName nvarchar(25)
LastName nvarchar(25)
AddressLine1 nvarchar(50)
City nvarchar(30)
OtherData nvarchar(max)

当然,OtherData列需要包含一些分隔符来标识导入的Excel列。

我们只需要使用“常用”列,但是当我们导出数据(通常只是原始行的一个子集)时,我们可以更轻松地包含 OtherData 而不是创建自定义表对于每个不同的数据文件或与Excel合并。


编辑:我可以通过向充当自定义分隔符的数据文件中添加大量额外列来实现此目的,然后使用BULK INSERT,但这非常耗时。

1 个答案:

答案 0 :(得分:0)

粗略地说,如果你知道excel中的选项卡名称,你可以使用C#和OLE DB / JET 12驱动程序将数据读入数据集(基本上是SELECT * FROM [tabname])。 CSV可以加载得更简单。那时,这是将其打入数据库的问题。

如果你对这种方法感兴趣的话,我今天晚上能够删除一些伪代码。