代码之家  ›  专栏  ›  技术社区  ›  Mchief

SSIS(C#或VB):删除目录中所有excel文件中的第1-12行

  •  1
  • Mchief  · 技术社区  · 6 年前

    在从多个excel文件导入数据之前,我需要去掉每个工作表中的前12行。我要用 the code this solution 用于批量处理脚本任务。

    问题:

    • 我应该在脚本中插入什么代码来删除行?(我想紧接着 //Load the DataTable with Sheet Data so we can get the column header );或
    • 如何修改此代码以使其读取从第13行开始的excel文件;或者
    • 在大容量行删除脚本之前应该插入什么SSIS任务?
    1 回复  |  直到 6 年前
        1
  •  2
  •   KeithL    6 年前

    这是一种在纸张之间循环的方法:

    创建数据流任务以将工作表名称读入ADO对象。

    Data flow

    第一项是作为源的脚本组件。 我有一个变量用于将字符串连接到Excel电子表格

    connstr

    创建SheetName的输出

    Output Setup

    下面是读取选项卡名称的代码: C#

    你基本上是用oleDB打开电子表格。 将表名放入数据表中

    循环遍历数据表并写出要输出的行。

    确保关闭连接!!! 如果不这样做,以后可能会导致错误。

    下一步是条件拆分,因为某些原因,结果有重复的制表名,并且它们都以一个“\u”结尾。

    Conditional Split

    下一步是派生一个列来清除exta“”的工作表名

    DerivedCol

    创建一个Object类型的变量:我将mine ADO_Sheets命名为

    插入记录集目标对象: 一。将变量设置为刚创建的变量 2。映射干净工作表的列

    现在回到控制流并设置foreach循环控制: enter image description here

    配置foreach。。。 枚举器:Foreach ADO枚举器 资料来源:ADO U Sheets 变量映射:设置为名为SheetName的变量

    我在循环中有一个函数任务,但为了更容易理解,它可能在变量中被关闭: SQL

    现在,您可以选择此变量从该页中提取数据。

    最后是要运行的数据流任务。

    很多工作,但我经常用这个,我想我会分享!!!

    向Excel(xlsx)添加有关连接字符串的信息

    2010年Excel Xlsx文件 连接到扩展名为Xlsx的Excel 2007(及更高版本)文件。这是禁用宏的Office Open XML格式。

    Provider=Microsoft.ACE.OLEDB.12.0;数据源=c:\ myFolder\myExcel2007file.xlsx; 扩展属性=“Excel 12.0 Xml;HDR=YES”;

    “HDR=Yes;”表示第一行包含列名,而不是数据。”HDR=否;“表示相反。

    资料来源: https://www.connectionstrings.com/ace-oledb-12-0/