拜托,我有一个.csv
文件,这个文件看起来像那个
Example Company
(999) 999-9999
http://yourwebsite.com
Report Date Range: Dec 26, 2013 - Dec 26, 2013
Exported: Dec 26, 2013
Twitter : Profile Summary
Screen Name,Name,Description,Location,Followers,Following,Listed
SctaSa,statisticalgraph,statistical Screen- The official account for your organization,Saudi Arabia,6775,8,75
因此,我需要将.csv
文件中的特定数据从SSIS转换中读取,从“屏幕名称”列开始,并添加两列“报告日期范围”&存储在行号4和5中的“导出”将它们放在列列表的末尾之后,将这两列的数据放在数据行的末尾并删除垃圾数据,看起来像那样
Screen Name,Name,Description,Location,Followers,Following,Listed,Exported,Report Date Range
SctaSa,statisticalgraph,statistical Screen- The official account for your organization,Saudi Arabia,6775,8,75,26-Dec-13,26-Dec-13
我们可以通过Windows命令或C#来实现吗?
请帮助,因为我不是C#的专家,我想在SSIS项目中使用这个脚本感谢您的帮助
答案 0 :(得分:0)
如果您不熟悉C#,我建议您use PowerShell或类似的做法。这将更容易在命令行上进行测试并进行修改。
有关如何使用PowerShell从文本文件中获取特定行的信息,请参阅this answer。
然后用户PowerShell添加其他文本,或者更好的方法是使用SSIS添加新列并提供值,这样可以最大限度地减少文本操作量。并且可能数据值来自SSIS比从PowerShell更容易获得的地方。
答案 1 :(得分:0)
在SSIS中做这些事情(我确信它可以改进):
数据流:
来源组件: 读取由CRLF分隔的csv(即每行将返回一列到管道)
派生专栏: 当您找到子字符串“已导出”或“报告日期范围”
脚本组件: 将派生列保存到导出/报告日期范围到变量
条件拆分:isHeading(列==“屏幕名称,名称,描述,位置,关注者,关注,列出”)
isDetailLine
(标记“,”出现x次)
派生列如果isHeading: 管道列+“,导出,报告日期范围”
派生列如果isDetailLine: 管道列+“,”+变量导出+“,”+变量报告日期范围
联盟
目标组件