Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新SSIS脚本任务中Excel文件的格式_C#_Excel_Vb.net_Ssis_Etl - Fatal编程技术网

C# 更新SSIS脚本任务中Excel文件的格式

C# 更新SSIS脚本任务中Excel文件的格式,c#,excel,vb.net,ssis,etl,C#,Excel,Vb.net,Ssis,Etl,我有一个SSIS包,它运行SQL脚本并将结果放入Excel文件;开头的文件只有一个标题行和粗体列名 我发现,无论我的数据在数据流任务中如何格式化,我的数字最终都会以文本形式进入Excel文件 有人能帮我完成一项脚本任务吗?该任务将更新列O和p,使其正确显示为货币,并带有£symbol 以下是SSI导入数据后的处理方式: 这就是我要求他们看起来的样子: 您应该在脚本任务中使用Mcirosot.Office.Interop.Excel.dll来更改列号格式,如下所示: using Excel =

我有一个SSIS包,它运行SQL脚本并将结果放入Excel文件;开头的文件只有一个标题行和粗体列名

我发现,无论我的数据在数据流任务中如何格式化,我的数字最终都会以文本形式进入Excel文件

有人能帮我完成一项脚本任务吗?该任务将更新列
O
p
,使其正确显示为货币,并带有£symbol

以下是SSI导入数据后的处理方式:

这就是我要求他们看起来的样子:


您应该在脚本任务中使用
Mcirosot.Office.Interop.Excel.dll
来更改列号格式,如下所示:

using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

string inputFile = @"D:\Test.xlsx";

Excel.Application ExcelApp = new Excel.Application();
Excel.Workbook ExcelWorkbook = ExcelApp.Workbooks.Open(inputFile);
ExcelApp.Visible = false;
//O index is 15
ExcelWorksheet.Columns[15].NumberFormat = "£#,##0.00";
//P index is 16
ExcelWorksheet.Columns[16].NumberFormat = "£#,##0.00";
ExcelWorkbook.Save();

GC.Collect();
GC.WaitForPendingFinalizers();

ExcelWorkbook.Close(Type.Missing, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(ExcelWorkbook);

ExcelApp.Quit();
Marshal.FinalReleaseComObject(ExcelApp);
工具书类

您可以在标题上方创建格式正确的隐藏行。这可能允许它以正确的格式插入。