我有一个数据流组件,包括以下内容:
1。)阅读Excel文件
2.)“脚本转换组件”
3.)写入平面文件
一切正常,但是我试图添加标题&页脚。
标题和&页脚是自定义的,必须从文件中的数据派生。
我可以在C#中打开文件并编写低级代码,但这似乎是一项非常常见的任务。我以为会有一些通用的东西。
如果有人这样做,请告诉我。
答案 0 :(得分:1)
Toolbox.com文章中列出的方法肯定会有效。 (您需要添加另一个数据流,但数据流很便宜。)
另一方面,由于您已经在现有数据流中获得了一个脚本组件,因此可以使用它来生成标题和尾部行。
首先,将脚本组件输出的SynchronousInputID更改为None
,以便您可以生成其他行:
接下来,更新ProcessInputRow()方法并在这些行中添加FinishOutputs()方法:
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
private bool _headerWritten = false;
public override void IncomingRows_ProcessInputRow(IncomingRowsBuffer Row)
{
if (!_headerWritten)
{
// Code to write the header row goes here
_headerWritten = true;
}
OutgoingRowsBuffer.AddRow();
// do whatever other processing you need for this row of input
}
public override void FinishOutputs()
{
base.FinishOutputs();
// Code to write the footer row goes here
}
}
这种方法需要更多代码,但允许您在一次通过中执行所有操作,对于足够大的文件可能很重要。 (另一方面,Excel电子表格不应该那个大...)