我想使用SSIS覆盖Excel工作表中的所有数据。我按照本指南https://dwhanalytics.wordpress.com/2011/04/07/ssis-dynamically-generate-excel-tablesheet/进行了操作。当我运行我的包时,我收到以下错误:
描述:执行查询“CREATE TABLE
Excel Destination
(clientNr
...”失败,并显示以下错误:“表'Excel目标'已存在。”
问题在于“删除Excel表”执行SQL任务。在我的情况下,“DROP TABLE Excel Destination
”查询不会删除Excel目标表 - 它只删除标题,因此无法创建具有完全相同名称的新表。如何删除工作表而不是删除标题?
答案 0 :(得分:2)
您必须通过C#/ VB.NET脚本任务执行此操作。 SQL任务不会让你做你想做的事。 Here是如何做到这一点的,但基本上你需要按索引获取工作表(希望你有),更改名称然后保存。在脚本任务中非常简单:
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();