删除导出的CSV文件中的前导空格

时间:2015-02-20 13:27:19

标签: csv ssis

我创建了一个数据流任务,可以从数据库生成CSV文件。 CSV文件有一个zip列。有些行像“43218-2166”一样有拉链,很少有拉链像“21709”。 这里的问题是拉链长度= 5的列,对齐是正确的。我希望这些拉链左对齐文本。 否则,将此CSV作为输入的执行处理任务不能正常工作。 我在OLEDB源和平面文件目的地之间创建了一个派生列,并在zip上使用了几个表达式,包括LTRIM,RTRIM,REPLACE等。 没有任何效果。 请建议是否有任何解决方法来获得CSV的CSV左对齐?

Below image shows how the Zips are arranged.

2 个答案:

答案 0 :(得分:3)

您的问题是,当您在Excel中打开文件时,它会将“21709”显示为数字,因此右对齐 和'50301-0100'作为文本,因此左对齐。

在csv本身中,您无法定义对齐方式。

我测试了下一个csv文件。

A,B,X
1,2,X
1   ,2,X
1,   2,X
111-111   ,222-222,X
111-111,   222-222,X
111-111,222-222,X
111-111,222-222,X

要强制左对齐,你可以做一些丑陋的事情,比如在每个数字之前加上一个叛逆者。

答案 1 :(得分:0)

您可以在Excel中打开文件,选择zip列,然后将整个列设置为文本格式。但是我想您不想在每次重新生成文件时都这样做。

因此,您可以引用可能会错误地解释为数字的值(即,将每个值都用引号引起来)。 由于文件已生成,因此最简单的方法是至少对zip列引用所有文本字段。其他两列都很好,因为Excel可以看到这些不是数字。

什么才是引用字符取决于。在Libre Office Calc中,当我打开一个csv文件时,会出现一个对话框,用于指定字段分隔符和引号字符。因此,您可以在此处选择撇号,反引号或任何您想要的名称。您在那里输入的任何内容显然都必须与您的文件匹配。