SSIS c# OpenXML生成Excel文件失败

本文关键字:文件 失败 Excel 生成 OpenXML SSIS | 更新日期: 2023-09-27 18:17:48

我使用OpenXML在SSIS包中使用c#生成Excel文件。

我这样做是因为我们没有在服务器上安装Excel,所以这应该不需要安装Excel。

这在本地工作,但在移动到PROD服务器时失败。它在脚本任务上失败,我得到这个错误:

Executed as user: MI'SQLAgentAccount. Microsoft (R) SQL Server Execute     Package Utility  Version 11.0.5058.0 for 64-bit  Copyright (C) Microsoft Corporation. All rights reserved.    Started:  10:46:49 AM  Error: 2015-10-15 10:46:50.49     Code: 0x00000001     Source: Save To Excel Without Excel      Description: Exception has been thrown by the target of an invocation.  End Error  DTExec: The package execution returned DTSER_FAILURE (1).  Started:  10:46:49 AM  Finished: 10:46:50 AM  Elapsed:  0.827 seconds.  The package execution failed.  The step failed.

我在引用中包括OpenXML和WindowBase对象,并将它们与"using"语句添加。

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

这些需要向GAC注册吗?或者有一种方法将它们包括在项目中(在SSIS内的脚本任务内)?在SSIS中的c#脚本任务中有"复制到本地"的设置,但不确定这在SSIS中是如何工作的。

SSIS c# OpenXML生成Excel文件失败

是的,您需要确保您从GAC中获得它,并将程序集复制到c:' windows ' microsoft净' Framework '

我自己做了一些研究,发现了以下链接,确认了这个问题和解决方案:http://beyondrelational.com/modules/2/blogs/81/posts/11263/referencing-an-assembly-inside-ssis-script-task.aspx