SSIS добавить пользовательский заголовок в файл Excel - PullRequest
0 голосов
/ 16 мая 2018

Мы выгружаем данные в файл Excel с помощью служб SSIS.Необходимо добавить пользовательский заголовок в файл Excel.

Код ниже работал в течение многих лет.(в разных Windows (Win7, Win10) и в разных офисных версиях (Office2007 и Office2013).

        string ExcelTarget = Dts.Variables["ExcelTarget"].Value.ToString();
        int ReportDayDiff = (int)Dts.Variables["ReportDayDiff"].Value;
        Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
        Microsoft.Office.Interop.Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(ExcelTarget, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Sheets["Orders"];
        xlWorkSheet.PageSetup.PrintTitleRows = "$1:$1";
        xlWorkBook.Save();
        xlWorkSheet.PageSetup.CenterHeader = "&B&\"Calibri\"&22 SellerCloud Orders - " + DateTime.Now.AddDays(ReportDayDiff).ToString("MM/dd/yyy");

        xlWorkBook.Save();
        xlWorkBook.Close(true, Type.Missing, Type.Missing); // first parameter is SaveChanges
        xlApp.Quit();
        Dts.TaskResult = (int)ScriptResults.Success;

Перестал работать после недавнего обновления для системы безопасности Windows.

Отлично работает в Visual Studio,но с ошибками в агенте SQL Server.

Ошибка от агента SQL Server

Выполнено от имени пользователя: Office \ Administrator. Microsoft (R) SQL Server Execute Package Utility Версия 14.0.1000.169 для64-разрядная версия Copyright (C) Microsoft, 2017 г. С сохранением всех прав. Начато: 15:01:22 Ошибка: 2018-05-16 15: 01: 25.64 Код: 0x00000001 Источник: сценарий Описание задачи: целевым объектом было выдано исключениеОшибка завершения DTExec: выполнение пакета вернуло DTSER_FAILURE (1). Начато: 15:01:22. Завершено: 15:01:25. Прошло: 2.687 секунд. Сбой выполнения пакета. Сбой шага.

1 Ответ

0 голосов
/ 17 мая 2018

Исключение было сгенерировано целью вызова

Это исключение является общим, я думаю, вы должны добавить некоторую обработку ошибок в код скрипта, чтобы получить реальное исключение.

Но я думаю, что это справочная проблема, агент sql, возможно, не сможет получить доступ к пути microsoft.interop.excel.dll, или эта сборка должна быть переустановлена ​​в GAC.

Есть похожая статья, которая содержит больше деталей и способов ее решения:

...