SSIS将自定义标题添加到Excel文件
Posted
技术标签:
【中文标题】SSIS将自定义标题添加到Excel文件【英文标题】:SSIS add Custom Header to Excel file 【发布时间】: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 秒。包执行失败。步骤 失败了。
【问题讨论】:
【参考方案1】:调用目标抛出异常
这个异常是一般的,我认为你应该在脚本代码中添加一些错误处理来获得真正的异常。
但我认为这是一个参考问题,sql代理可能无法访问microsoft.interop.excel.dll
路径,或者这个程序集应该重新安装在GAC中。
有一些类似的文章包含更多细节和解决方法:
Exception has been thrown by the target of an invocation - SSIS Script Task Error Script task error: exception has been thrown by the target of an invocation【讨论】:
以上是关于SSIS将自定义标题添加到Excel文件的主要内容,如果未能解决你的问题,请参考以下文章
SSIS 将数据从 SQL db 复制到同一 excel 目标上的多个选项卡
使用 ssis 包导入 excel 到 sql server 失败