2010-03-03 112 views
1

我需要一些反馈意见,说明如何做我想做的事情的最佳方式,允许我设置位置。计划的SSIS包创建excel文件,日期为文件名

我有一个巨大的数据库,不断接收新的输入。现在我需要一个显示过去一天所有输入列的excel文件。所以我认为最好的方法是使用SSIS包。我从来没有真正使用过SSIS,所以我不太确定可能性有多广。所以目前我只能创建一个包含的全部的SSIS包。但是我每天都需要一个新文件,而且还需要文件名中包含数据的地方,因为旧文件不会被删除等。所以我需要能够创建一个.xls文件,其中包含文件名中的日期。是否有捷径可寻?

我也想知道是否可以自动修改这个excel文件的布局,特别是列宽,因为它们都是默认的宽度,这对客户端来说并不是非常有用。

我听说也可以使用visual studio创建SSIS包,这是否会有所作为或可能性相同(请记住,我是c#程序员)?

非常感谢

回答

3

可以通过Visual Studio创建SSIS包。在Visual Studio中单击新项目时,选择“商业智能项目” - >“Integration Services项目”。

虽然与您的情况不同(即Excel文件输出),但在我的情况下,对于平坦的.TXT文件输出,我将日期作为平面文件名的一部分。为此,在我的Flat File Connection Manager中,在Properties-Expressions-> Connection String(Property)中,我输入了下面的表达式。类似的方法也适用于你的情况,特别是如果你去.csv文件输出。

"[Folder Destination]_" + 
(DT_WSTR,4)YEAR(GETDATE()) + 
RIGHT("0" + DT_WSTR,2)MONTH(GETDATE()),2) + 
RIGHT("0" + (DT_WSTR,2)DAY(GETDATE()),2) + 
RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()),2) + ".TXT" 
1

@Kashif - Thank you !!

您的帖子中有一个小错字。 通知,3号线缺少左括号:

RIGHT("0" + DT_WSTR,2)MONTH(GETDATE()),2) + 

需要是:

RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()),2) + 

一起:

"[Folder Destination]_" + 
(DT_WSTR,4)YEAR(GETDATE()) + 
RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()),2) + 
RIGHT("0" + (DT_WSTR,2)DAY(GETDATE()),2) + 
RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()),2) + ".TXT" 

而且,只是任何人都记发现这个帖子,你可以用上述路径替换上述[文件夹目的地] _“:

"C:\\Some\\Path\\to\\File.txt" 

注意双反斜线!

+0

以上语法仅生成HH(小时)。如果我需要HHMMSEC(HourMinSec)? – goofyui 2012-11-07 15:55:13