Обновите формат файла Excel в задаче сценария служб SSIS. - PullRequest
2 голосов
/ 05 марта 2020

У меня есть пакет служб SSIS, который запускает сценарий SQL и помещает результаты в файл Excel; файл в начале содержит только строку заголовка с полными именами столбцов.

Я обнаружил, что независимо от того, как мои данные отформатированы в задачах потока данных, мои числа в конечном итоге попадают в файл Excel. как текст.

Может кто-нибудь помочь мне с задачей сценария, которая обновит столбцы O и P, чтобы они правильно отображались как валюта, с символом £.

Это как они выглядят после того, как SSIS импортирует данные:

enter image description here

Вот как я должен их выглядеть:

enter image description here

1 Ответ

2 голосов
/ 05 марта 2020

Вы должны использовать 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);

Ссылки

...