SSIS:使用文件系统任务复制文件后无法写入Excel文件(.xlsx)

时间:2019-07-11 18:30:08

标签: excel ssis

在当前情况下,我正在实现一项功能,该功能可从SQL数据库读取数据并写入excel文件。

文件系统任务组件: 我尝试写入的目标excel文件已从其他源目录复制到目标目录中。源目录中有一个excel文件,我将其用作模板将其复制到目标目录中。为此,我使用了"File System Task"组件和"Copy File"功能。

问题: “文件系统任务”成功复制了文件,但稍后写入excel文件失败并显示以下错误。

Opening a rowset for "C:\Users\Public\Documents\New_Carriers-2019-07-11.xlsx" failed. Check that the object exists in the database.  

解决方法/故障排除: 1.我根据其他用户的费用分配将项目设置为32 bit runtime。 2.在实际开始写入文件之前,我还应用了延迟。 3.我还检查了将文件写入目标目录的适当访问权限。

下面是我的控制流程的屏幕截图。

see a more complete example

Control Flow Task

File Sytem Task Editor

任何朝着解决方向的方向都值得赞赏。有类似的帖子,但发现了相同的错误,但我不知道为什么我的问题看起来有所不同。

2 个答案:

答案 0 :(得分:0)

即使该文件已经存在,您也必须运行Execute SQL Task来在Excel文件中创建表/表。

Execute SQL Task

如果在文件系统任务之后添加此步骤,并正确设置Excel连接的参数,则应该允许您在数据流中插入数据。

答案 1 :(得分:0)

我相信这可能是对这个问题的答案之一,因为我发现各种解决方案都指向解决此类问题。因此,我发布了我的分类文章,这有助于我克服了这个问题。

我检查了以下内容:

  1. 首先,我检查了Task Manager,以查看是否有任何与Microsoft Excel相关的现有流程将我的文件保存起来。事实并非如此。 (即我没有找到现有的过程)

  2. 第二,我将以下步骤应用于分类。 2.1。我从写入新目录的目标目录中删除了所有先前的文件     文件,以确保我重新运行批处理过程。 2.2。我清除了%temp%目录中的所有内容。 (我相信这可能/可能不会     每个人都应如此) 2.3。执行上述步骤后,我在SSIS Excel Destination component中注意到了     我们为Name of the Excel sheet提供了自动适应的组件     后缀为$的文件名,表示该组件已成功     建立具有所需路径的连接以读取源模板。     对于前。我的文件名为New_Carriers.xlsx,该组件已改名     为New_Carriers$。 2.4。在完成这些事情之后,我一直在运行我的包,直到现在     任何问题。 虽然可能很简单,但进行分类并确认如何顺利处理Excel Destination花费了很长时间。