将具有不同架构的多个Excel文件加载到SQL Server
我有大约300个有销售数据的Excel文件,但有不同的模式(一个名为“Product Name” ,另一个只有“Product” ),但包含了不同商店销售的相同信息。 这些文件是由一些人手动生成,所以错别字也是可能的。 有什么好的方法来导入这些数据,或者我必须在SSIS中创build300个ETL包?
你可以在这些步骤中做到这一点
- 获取所有的Excel文件
- 对于每个文件
-
脚本任务获取列名和表名
-
将列名和表名存储在ssisvariables中
编辑:你不能轻易做任何关于错别字,我可以做的最简单的事情就是有一个字典表准备去期望值和模糊匹配转换来检查字典表
-
对于每张纸
-
SQL任务创build阶段表如果不存在
-
脚本任务从Excel表格中读取并插入到表格中
而且很容易find如何用c#dynamic读取excel文件的列名。 我已经做了类似于VB的东西,但下面是如何处理C#的例子。
工作表名称
- 使用Excel OleDb来获取表格名称
列名称
- 使用C#与OleDbConnection获取特定工作表的Excel文件中的列名
此外,这家伙正在dynamic加载所有的文件,开箱即用的ssis excel数据stream
- https://social.msdn.microsoft.com/Forums/sqlserver/en-US/53f08f44-e996-48ca-9f72-b7dfc5d9136b/import-different-excel-file-with-different-schema-to-different-table-在-SQL服务器?论坛= sqlintegrationservices
要创build表,您将需要创buildSQL语句来创build表,然后再将SQL语句插入到您创build的表中。