通过SSIS将数据导出到excel - 服务器上的包忽略命名范围

时间:2018-03-14 09:53:56

标签: excel ssis ssis-2008

我正在尝试使用SQL Server Integration Services将数据插入Excel文件。每次我必须从模板创建新的excel文件并在一个表中填充两个表,其中第一个表从第2行开始(数据必须从3行开始),第二个表从第7行开始(数据必须从8行开始)。因此,我创建了带有两个命名范围的模板excel文件,在SSIS中我创建了两个Excel目标任务并使用命名范围作为目标。

一切都完美适用于我的电脑。我可以运行我的包(在32位模式下),使用填充正确的表创建模板中的新excel文件。

很好,但它在服务器上无法正常工作。我创建了一个运行包的工作,检查了32位选项,在服务器上添加了参数和保存的模板。如果我运行作业,它会成功结束,但excel文件未正确填充。整个保存的数据从第2行(从两个表开始)开始,第一个表中的数据被第二个表中的数据覆盖。它以某种方式忽略了命名范围。

我尝试了另一种没有命名范围的方法,也就是说,在Excel目标任务中,我在“数据访问模式”中选择了SQL命令并编写了查询SELECT * FROM [Sheet$A2:N2],但历史相同。在本地工作,但不在服务器上。

我从服务器下载了包和模板文件,然后在我的计算机上运行,​​一切正常......

有没有人遇到过这样的问题?

1 个答案:

答案 0 :(得分:0)

以下是我从第7行开始将数据导出到Excel的步骤。对于此示例,假设您导出4列。警告 - 它适用于SSIS 2012 +。

  1. 创建一个模板Excel文件,其命名范围(例如N1)位于A6:D6作用域的工作簿。
  2. 在Excel目标位置,打开高级编辑器,在“组件属性”选项卡上指定以下参数 - AccessMode 选择OpenRowSet OpenRowset 输入N1
  3. 之后,您必须在Excel目标位置再次映射列。