覆盖SSIS中的excel文件数据

我想用SSIS覆盖Excel表格中的所有数据。 我遵循这个指南https://dwhanalytics.wordpress.com/2011/04/07/ssis-dynamically-generate-excel-tablesheet/ 。 当我运行我的包时,出现以下错误:

说明:执行查询“CREATE TABLE Excel DestinationclientNr …”失败,并显示以下错误:“表'Excel目标'已存在”。

问题在于“删除Excel表”执行SQL任务。 在我的情况下,“DROP TABLE Excel Destination ”查询不会删除Excel目标工作表 – 它只是删除标题,因此无法创build具有完全相同名称的新工作表。 如何删除工作表而不是删除标题?

你将不得不通过C#/ VB.NET脚本任务来做到这一点。 SQL任务不会让你做你想做的事情。 这里是你如何做到这一点,但基本上你需要通过索引得到一个工作表(希望你有),更改名称,然后保存它。 在脚本任务中很简单:

 object m = System.Reflection.Missing.Value; Excel.ApplicationClass app = new Excel.ApplicationClass(); Excel.Workbook xls = (Workbook)app.Workbooks.Open(path, m,m,m,m,m,m,m,m,m,m,m,m,m,m); Excel.Worksheet sheet = (Worksheet)xls.Worksheets.get_Item(1); sheet.Name = "myName"; xls.Save(); app.Application.Workbooks.Close();