是否可以从 SSIS 删除 Excel 工作表中的行?
3 回答
来自论坛
- 在控制流中创建文件系统任务,删除文件。
- 创建一个 sql 任务,excel 连接类型,我使用我之前的 excel 连接,然后使用创建表脚本作为我的 sql 语句
- 让我之前的导出对象保持不变,然后按照描述的顺序链接这些流。
微软的一个 arctile 声称您不能删除整行,但是您可以删除单元格中的值。http://support.microsoft.com/kb/257819
这个线程与有同样问题的人有关: http ://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.adonet/2006-12/msg00245.html
简而言之,答案似乎是“不”,您不能通过 SSIS 使用 ado.net 删除整行。您可以在 excel 本身中使用 excel 自动化或 vb.net 来完成此任务。
我也按照 Gulzar 建议的步骤进行了操作,但是,如果有人想要详细信息,这就是我所做的:
我最初的任务是从 SQL Server 读取一些信息并将其导出到 Excel:
然后我添加了建议的任务,一个是删除目标 Excel 文件,另一个是重新创建它:
这是删除文件的任务,它是“文件系统任务”:
这是重新创建 Excel 文件的任务,它是“执行 SQL 任务”:
需要为此“执行 SQL 任务”设置以下内容:
一个。连接类型是“Excel”
湾。如建议的那样,连接与原始导出任务使用的连接相同
C。SQL 语句是从原始导出任务中复制的
基本上就是这样。运行它,它应该可以工作。我与 SQL Server 的连接如下所示:
我的 Excel 连接最初是在创建导出任务时创建的,如下所示:
在“数据流”部分,使用Source Assistant,原来的“OLE DB Source”有这样的:
并且,使用目标助手,原始 Excel 目标具有以下内容:
这是我从原始 Excel 目标复制的 SQL 语句: