我有大约300个带有销售数据的Excel文件,但是不同的模式(一个具有名为"Product Name"的列,另一个只有"Product")但包含有关来自不同商店的销售的相同信息 . 这些文件是由某些人手动生成的,因此也可以进行拼写错误 . 有没有什么好方法可以导入这些数据,或者我必须在SSIS中创建300个ETL包?
您可以在这些步骤中执行此操作
获取所有excel文件
对于每个文件
脚本任务获取列名和工作表名称
在ssis变量中存储列名和工作表名称
EDIT: 你不能轻易做任何关于拼写错误的事情,我开箱即可做的最简单的事情就是让字典表准备好了预期的值和模糊匹配转换以检查字典表
对于每张纸
如果不存在,则创建阶段表的SQL任务
脚本任务从Excel工作表中读取并插入表中
并且很容易找到如何使用c#动态读取excel文件的列名 . 我已经用vb做了类似的事情,但下面是一个如何处理c#的例子 .
工作表名称
列名
此外,这家伙正在动态加载所有文件,开箱即用的ssis excel数据流
要创建表,您需要创建SQL语句来创建表,然后创建要插入到您创建的表中的SQL语句 .
1 回答
您可以在这些步骤中执行此操作
获取所有excel文件
对于每个文件
脚本任务获取列名和工作表名称
在ssis变量中存储列名和工作表名称
EDIT: 你不能轻易做任何关于拼写错误的事情,我开箱即可做的最简单的事情就是让字典表准备好了预期的值和模糊匹配转换以检查字典表
对于每张纸
如果不存在,则创建阶段表的SQL任务
脚本任务从Excel工作表中读取并插入表中
并且很容易找到如何使用c#动态读取excel文件的列名 . 我已经用vb做了类似的事情,但下面是一个如何处理c#的例子 .
工作表名称
列名
此外,这家伙正在动态加载所有文件,开箱即用的ssis excel数据流
要创建表,您需要创建SQL语句来创建表,然后创建要插入到您创建的表中的SQL语句 .