通过 VBA 从 SSIS 中清除多个工作表中的单元格

Clear cells in multiple sheets from SSIS by VBA

我如何在 SSIS vba 中使用以下 VBA 编码。我想通过 VBA 编码

从 SSIS 的多个工作表中清除单元格(数据)
sub cod()

    ThisWorkbook.Worksheets("Case management details").Range("A2:K10000").clear
    ThisWorkbook.Worksheets("interface Timeliness").Range("A2:G20000").clear
    ThisWorkbook.Worksheets("Life Events").Range("A2:N10000").clear

End sub

我在这里遇到了同样的问题。如果您决定使用 SSIS 组件解决此问题,请尝试使用 Script Task。 创建 excel 后,步骤将是:

  1. 在控制流程上添加 Script Task
  2. 双击组件。
  3. 按'Edit Script...'按钮。
  4. 右键单击新建 visual studio windows 中的项目(应该类似于 'ST_' 和一些 guid)并单击 Manage NuGet Packages...
  5. 从 'Browse' 选项卡安装:
    • Microsoft.Office.Interop.Excel
    • Microsoft.CSharp
  6. 在命名空间区域添加这两行:
using Microsoft.Office.Interop.Excel;
using Microsoft.CSharp.RuntimeBinder;
  1. 将下面的代码复制到ScriptMain class:
var appExcel = new Excel.Application();
string filename = @"D:\PathToExcel\ExcelFile.xlsx";

var newBook = appExcel.Workbooks.Open(filename);
var oSheet1 = newBook.Worksheets["Case management details"];
oSheet1.Range("A2", "K10000").Delete();

newBook.Save();
appExcel.Workbooks.Close();
appExcel.Quit();
  1. 关闭而不保存第二个 visual studio window(您在其中编写脚本代码)。

  2. 运行 套餐

注:

您可以将其替换为包变量,而不是硬编码文件位置。在这种情况下,第二行将是:

string filename = Dts.Variables["User::ExcelFilePath"].Value.ToString();

我在写答案之前测试了这个包,一切都很完美!

按照这个逻辑,创建多个 sheet 实例并删除你想要的。 如果有什么不清楚或不合逻辑的地方,请在评论中给我留言,我会进行更正。