【问题标题】:Overwriting excel file data in SSIS在SSIS中覆盖excel文件数据
【发布时间】:2017-03-13 16:38:22
【问题描述】:

我想使用 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 目标工作表 - 它只是删除标题,因此无法创建具有完全相同名称的新工作表。如何删除工作表而不是删除标题?

【问题讨论】:

    标签: sql excel ssis


    【解决方案1】:

    您必须通过 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();
    

    【讨论】:

    • 最后我决定每次启动SSIS包时创建一个新的excel文件,然后删除它。它无需编写脚本即可完成相同的结果。感谢您的贡献 - 我相信您的脚本将来会对某人有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 2010-10-07
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    相关资源
    最近更新 更多