【发布时间】:2018-10-27 00:08:50
【问题描述】:
我们正在使用 SSIS 将数据转储到 excel 文件中。需要在 Excel 文件中添加自定义页眉。
下面的代码工作了很多年。 (在不同的Windows(Win7、Win10)和不同的office版本(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。微软 (R) SQL Server 为 64 位执行包实用程序版本 14.0.1000.169 版权所有 (C) 2017 年微软。版权所有。开始时间:下午 3:01:22 错误:2018-05-16 15:01:25.64 代码:0x00000001 来源:脚本 任务描述:一个异常被一个目标抛出 调用。 End Error DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 3:01:22 结束时间:下午 3:01:25 经过:2.687 秒。包执行失败。步骤 失败了。
【问题讨论】:
标签: excel ssis excel-interop sql-server-agent windows-security