删除并添加.csv文件中的单词

时间:2014-01-05 11:17:25

标签: c# csv ssis

拜托,我有一个.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项目中使用这个脚本

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

如果您不熟悉C#,我建议您use PowerShell或类似的做法。这将更容易在命令行上进行测试并进行修改。

有关如何使用PowerShell从文本文件中获取特定行的信息,请参阅this answer

然后用户PowerShell添加其他文本,或者更好的方法是使用SSIS添加新列并提供值,这样可以最大限度地减少文本操作量。并且可能数据值来自SSIS比从PowerShell更容易获得的地方。

答案 1 :(得分:0)

在SSIS中做这些事情(我确信它可以改进):

数据流:

  • 来源组件: 读取由CRLF分隔的csv(即每行将返回一列到管道)

  • 派生专栏: 当您找到子字符串“已导出”或“报告日期范围”

  • 时,按标记“:”拆分
  • 脚本组件: 将派生列保存到导出/报告日期范围到变量

  • 条件拆分:isHeading(列==“屏幕名称,名称,描述,位置,关注者,关注,列出”)
    isDetailLine (标记“,”出现x次)

  • 派生列如果isHeading: 管道列+“,导出,报告日期范围”

  • 派生列如果isDetailLine: 管道列+“,”+变量导出+“,”+变量报告日期范围

  • 联盟

  • 目标组件