在使用ETL工具定期导出Excel格式的数据文档时,有时会要求导出的文件名称要以当天的日期或时间结尾,用以区分或归档。
微软的SSIS也能实现这样的要求,重点有两个:
1.使用Variable设置Excel文件名
2.使用Execute SQL Task 预先设置Excel文件里的WorkSheet(类似于建表的方式)
以下是实现过程:
设置Excel Connection Manager的属性ExcelFilePath为用户定义的Variable。
用户定义Variable:FilePath,计算公式如下:
以上步骤实现了导出的Excel文件名以当天日期结尾的效果,但是由于该文件是动态生成的,事先没有建立,所以运行时会出现数据流不知道字段映射到哪里的问题。
因此还需要在Excel中事先建立一个“Table”,其结构和字段映射相匹配,这里使用到了Execute SQL Task。一般这个控件是以Database为上下文环境运行的,但这里将它的ConnectionType设置为Excel,然后用Create table语句在Excel Connection Manager对应的文件中建立WorkSheet的结构。
以下是运行结果:
原文地址:http://blog.csdn.net/zw_2011/article/details/45200699