一、Sheet页固定进入同一个表中:

1.执行SQL任务;(防止重复传入)

2.数据流

    OLE DB源的任务管理器配置;

    源配置;(将随便一个Sheet页的名称设置成变量)

    OLE DB 目标设置;(创建一个新表)

3.Foreach循环容器;

创建一个.NET连接管理器

将新创建的.NET连接管理器配置到Foreach容器的枚举器设置连接

配置变量

二、Sheet页进入不同表中:

方案一:通过Foreach循环容器遍历所有Sheet页

业务流程:里面包含了循环文件夹和文件备份

1.在SQL Server数据库中添加一个 Mapping (用来将 Sheet Name 进行归类)

CREATE TABLE [dbo].[TableSheetMapping]([ID] [int] IDENTITY(1,1) NOT NULL,[DestTableName] [nvarchar](50) NULL,[SheetName] [nvarchar](50) NULL,
PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

2.添加变量:

3.执行sql任务:(从数据库映射出取出每个sheet页对应的表)

SELECT [DestTableName] FROM [dbo].[TableSheetMapping] WHERE [SheetName] = ?

参数映射:

结果集:

4.脚本任务:

脚本代码:

public void Main(){// ReadOnlyVariables User::varSheetName,User::varTableName// ReadWriteVariables User::varAreaSheet,User::varParentSheet,User::varPositionSheetstring tableName = Dts.Variables["User::varTableName"].Value.ToString();string sheetName = Dts.Variables["User::varSheetName"].Value.ToString();if (tableName == "areaExcel")Dts.Variables["User::varAreaSheet"].Value = sheetName;if (tableName == "parentExcel")Dts.Variables["User::varParentSheet"].Value = sheetName;if (tableName == "positionExcel")Dts.Variables["User::varPositionSheet"].Value = sheetName;Dts.TaskResult = (int)ScriptResults.Success;}

5.数据流任务:

     OLE DB源的任务管理器配置;

根据不同的目标设置不同变量:

    OLE DB目标对应配置:

脚本任务到数据流添加约束:

方案二:通过脚本任务循环所有Sheet页

业务流程:

Get All Sheet 脚本任务:

脚本代码:

public void Main(){// ReadOnlyVariables User::varFilePath// ReadWriteVariables User::varSheets,User::varSheetsCntstring excelFile = Dts.Variables["User::varFilePath"].Value.ToString();string connectionStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelFile + "Extended Properties=Excel 12.0";DataTable dataTable = null;List<string> tables = new List<string>(); // 表列表using (OleDbConnection conn = new OleDbConnection(connectionStr)){conn.Open();dataTable = conn.GetSchema("TABLES");}if (dataTable != null && dataTable.Rows.Count > 0){foreach (DataRow row in dataTable.Rows){tables.Add(row["TABLE_NAME"].ToString());}Dts.Variables["User::varSheets"].Value = tables;Dts.Variables["User::varSheetsCnt"].Value = tables.Count;}Dts.TaskResult = (int)ScriptResults.Success;}

SSIS读取一个Excel文件中不同Sheet页的几种方案相关推荐

  1. python读取excelsheet-python实现读取excel文件中所有sheet操作示例

    本文实例讲述了python实现读取excel文件中所有sheet操作.分享给大家供大家参考,具体如下: 表格是这样的 实现把此文件所有sheet中 标识为1 的行,取出来,存入一个字典.所有行组成一个 ...

  2. python 读excel中的sheet_python读取excel文件中所有sheet表格

    sales: store: """ (1)用load_workbook函数打开excel文件,返回一个工作簿对象 (2)用工作簿对象获取所有的sheet (3)第一个fo ...

  3. matlab sheet名字,MATLAB得到excel多个非默认sheet名_怎样利用matlab去读取一个excel表中多个sheet的数据并导入一个sheet中?...

    如何用matlab读取一个excel表格中的若干个工作表 如果数字: xlsread('e:/shiyanshuju/shiyanbiaoge','sheet1','B1:D1440') 最好个表格放 ...

  4. python 读excel中的sheet_python实现读取excel文件中所有sheet操作示例

    本文实例讲述了python实现读取excel文件中所有sheet操作.分享给大家供大家参考,具体如下: 表格是这样的 实现把此文件所有sheet中 标识为1 的行,取出来,存入一个字典.所有行组成一个 ...

  5. 如何合并多个Excel文件(相同列结构)至一个Excel文件中

    如何合并多个Excel文件(相同列结构)至一个Excel文件中 1. 将待合并数据格式一样的Excel文件放置在一个文件夹下 2. 新建一个Excel空文件,用来存放合并数据 3. 点击[数据]> ...

  6. 合并excel文件 C语言,多个Excel文件中的多个Sheet合并到一个Excel文件中两个函数...

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  7. Python依次读取Excel文件中的Sheet

    利用pandas依次读取excel表格中每个sheet的数据,并按照行进行打印,输出格式为列表 主要解决以下问题: 读取Excel 对每个sheet中的数据单独读取 按照行对每一条数据进行读取 将读取 ...

  8. Python+xlrd:实现Excel文件内容读取(全文件or指定sheet页)

    一.xlrd常用方法简述: 代码示例 方法释义 book = xlrd.open_workbook(xlsx_path) 实例化工作簿对象 book sheet_num = book.nsheets ...

  9. Java poi插件导出Excel文件合并多sheet页

    文章目录 一.java导出excel格式文件 二.excel文件多sheet页合并 前言:2020年第一篇文章,就写这两天工作中遇到的这个小需求吧,导出多excel,每个excel有多个sheet页, ...

最新文章

  1. linux ps pstree pstack命令
  2. 使用正当时!用扩展全面武装Firefox
  3. 如何知道自己的php安装在哪,如何知道安装了哪些PHP扩展
  4. [Web开发] IE文档模式终极指南
  5. java 地图渲染_离屏渲染在车载导航中的应用
  6. container-coding-codec
  7. (python版)《剑指Offer》JZ58:对称的二叉树
  8. 数据分析 - 数据可视化图表 适用场景(学习笔记)
  9. 自学Java第二天 解决java不能输出中文问题
  10. asp.net实现识别客户端浏览器或操作系统
  11. telegram java,telegram_bot
  12. css文件组件化(不需要再创css文件了)
  13. GitHub超6.8万星,最全Python入门算法来了
  14. securefx显示linux目录,使用secureFX连接到linux上需要在linux上配置什么
  15. Linux-SSH反向连接(内网穿透,打洞)
  16. 给大家推荐一款由PHP+MYSQL搭建的同城跑腿系统
  17. WPF弹窗框自定义可自定义样式
  18. 随机抽奖小程序(C#)
  19. NullPointerException异常的原因及java异常
  20. Jsoup的网页工具类

热门文章

  1. codeforces D.The Bakery
  2. Struts2-062_RCE简单复现(CVE-2021-31805)
  3. 【裂缝识别】基于matlab GUI路面裂缝识别(带面板)【含Matlab源码 1648期】
  4. countif函数的使用方法汇总
  5. 遥仰凰华重装系统后无法运行解决方法
  6. 隆重推荐:男人来自火星,女人来自金星
  7. Python基础练习题(按条件对指定序列求和,打印99乘法表、求斐波那契数列、百马百担、求水仙花数、求n以内的所有质数(素数)和)
  8. 可以自动下载字幕的播放器-shooter player 射手播放器
  9. 【洛谷 P3403】跳楼机(SPFA)
  10. https://github.com/