将具有不同架构的多个Excel文件加载到SQL Server

时间:2017-11-30 08:39:17

标签: sql sql-server excel ssis etl

我有大约300个带有销售数据的Excel文件,但是不同的架构(一个有一个名为&#34的列;产品名称" ,另一个只有"产品" )但包含有关不同商店销售的相同信息。这些文件是由某些人手动生成的,因此也可以进行拼写错误。有没有很好的方法来导入这些数据,或者我必须在SSIS中创建300个ETL包?

1 个答案:

答案 0 :(得分:0)

您可以通过以下步骤执行此操作

  • 获取所有Excel文件
  • 对于每个文件
  • 获取列名和工作表名称的脚本任务

  • 在ssis中存储列名和工作表名称 变量

编辑:你不能轻易做任何关于拼写错误的事情,我能做的最简单的事情就是让字典表准备好了预期值和模糊匹配转换以检查字典表

  • 对于每张表

  • 创建阶段表的SQL任务(如果不存在)

  • 从Excel工作表中读取并插入表格的脚本任务

很容易找到如何使用c#动态读取excel文件的列名。我已经用vb做了类似的事情,但下面是一个如何处理c#的例子。

工作表名称

列名

此外,这家伙正在使用开箱即用的ssis excel数据流

动态加载所有文件

要创建表,您需要创建SQL语句以创建表,然后创建要插入到您创建的表中的SQL语句。