SSIS格式文本列到货币以显示$

时间:2016-10-25 16:19:34

标签: ssis

我正在尝试将数据从Source excel移动到Destination excel。但是,在移动数据之前,我需要进行一些格式化。最重要的转换是字符串到货币,以便我可以有$符号,然后Date应该是yyyy-mm-dd的格式。以下是源

中的数据示例
<br/>
ID  Amount  Date<br/>
A1  10.01   10/25/2016<br/>
A2  100.3   10/26/2016<br/>

我尝试加载到目标Excel中的格式

ID    Amount     Date<br/>
A1  **$10.01**   2016/10/26<br/>
A2  **$100.30**  2016/10/26<br/>

任何帮助?非常感谢。

更新:要求输出列的格式为货币类型而不是文字。

2 个答案:

答案 0 :(得分:0)

实现派生列任务,在将值传递给Excel目标之前将“$”连接到值?数据类型为派生列中的字符串,使用如下表达式:

using (var bmp = new Bitmap(panel1.Width, panel1.Height))
{
    panel1.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
    bmp.Save("output.png", System.Drawing.Imaging.ImageFormat.Jpeg);
}

MSDN参考:https://msdn.microsoft.com/en-us/library/ms138036.aspx

答案 1 :(得分:0)

添加脚本组件将2列标记为输入并创建输出列: outDateoutCurrency

脚本中的

编写以下代码:

if not Row.Date_ISNull AndAlso not string.isnullorEmpty(Row.Date)
row.outDate = Date.ParseExact(Row.Date,"MM/dd/yyyy", new system.globalization.cultureinfo("en-GB"),none).tostring("yyyy/MM/dd")
else
 row.outDate_IsNull = True

end if


If not row.Currency_IsNUll andAlso not string.isnullorEmpty(row.Currency) Then
row.outcurrency = "$" & Row.Currency
else
Row.outCurrency_IsNull = True
end if

将输出列映射到目标Excel

如果您想要货币格式的列,则必须从excel文件更改。或者您必须使用excel操作库(如microsoft.office.interop.excelOpenXML

)使用脚本任务进行更改