SSIS加载带有动态列的Excel文件

时间:2018-11-29 19:33:41

标签: sql-server excel ssis load

我是SSIS的新手,并且一直在寻求解决方案来解决这一挑战,但是没有成功。

实际上,我收到的Excel文件大约有200列,为简单起见,我们假设我有10列,前3列是“产品名称”,“产品类别”和“客户名称”,然后所有其他列是与销售预测有关的月份,我有类似的内容:

Product ! Category ! Client ! Jan-18 | Feb18 | Mar18 !
Prd A   | Cat A    | ClientA| 10     | 20    | 25    | 
Prd B   | Cat B    | ClientB| 70     | 30    | 100   |

我的问题是,每个月我都会在此文件中得到一个新的月,并且我不能仅导入最后一个月,因为历史数据会随时间变化。

因此,下个月我可以有,例如:

Product ! Category ! Client ! Jan-18 | Feb18 | Mar18 ! Apr18|
Prd A   | Cat A    | ClientA| 50     | 40    | 250   | 40   |
Prd B   | Cat B    | ClientB| 50     | 40    | 150   | 80   |

如何将其导入SQL?我当时正在考虑使用脚本任务来执行此操作,但是由于我不了解C#或VB,所以无法编写脚本。

是否有一种无需脚本任务即可执行此加载的方法?如果可以,怎么办?如果可以使用ST,您能帮我写这个吗?

1 个答案:

答案 0 :(得分:0)

卢卡斯,当我遇到同样的问题时,我使用的一种解决方法是将表导入到只有一个varchar(max)列的登台表中。不要忘记添加定界符。这样,SSIS将接受具有尽可能多列的文件。一旦这些数据进入数据库,您就可以创建一个将数据分成多列并发送到最终表的过程。我知道还有其他方法,但是这个过程对我有用。