SSIS读取一个Excel文件中不同Sheet页的几种方案
一、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页的几种方案相关推荐
- python读取excelsheet-python实现读取excel文件中所有sheet操作示例
本文实例讲述了python实现读取excel文件中所有sheet操作.分享给大家供大家参考,具体如下: 表格是这样的 实现把此文件所有sheet中 标识为1 的行,取出来,存入一个字典.所有行组成一个 ...
- python 读excel中的sheet_python读取excel文件中所有sheet表格
sales: store: """ (1)用load_workbook函数打开excel文件,返回一个工作簿对象 (2)用工作簿对象获取所有的sheet (3)第一个fo ...
- matlab sheet名字,MATLAB得到excel多个非默认sheet名_怎样利用matlab去读取一个excel表中多个sheet的数据并导入一个sheet中?...
如何用matlab读取一个excel表格中的若干个工作表 如果数字: xlsread('e:/shiyanshuju/shiyanbiaoge','sheet1','B1:D1440') 最好个表格放 ...
- python 读excel中的sheet_python实现读取excel文件中所有sheet操作示例
本文实例讲述了python实现读取excel文件中所有sheet操作.分享给大家供大家参考,具体如下: 表格是这样的 实现把此文件所有sheet中 标识为1 的行,取出来,存入一个字典.所有行组成一个 ...
- 如何合并多个Excel文件(相同列结构)至一个Excel文件中
如何合并多个Excel文件(相同列结构)至一个Excel文件中 1. 将待合并数据格式一样的Excel文件放置在一个文件夹下 2. 新建一个Excel空文件,用来存放合并数据 3. 点击[数据]> ...
- 合并excel文件 C语言,多个Excel文件中的多个Sheet合并到一个Excel文件中两个函数...
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...
- Python依次读取Excel文件中的Sheet
利用pandas依次读取excel表格中每个sheet的数据,并按照行进行打印,输出格式为列表 主要解决以下问题: 读取Excel 对每个sheet中的数据单独读取 按照行对每一条数据进行读取 将读取 ...
- Python+xlrd:实现Excel文件内容读取(全文件or指定sheet页)
一.xlrd常用方法简述: 代码示例 方法释义 book = xlrd.open_workbook(xlsx_path) 实例化工作簿对象 book sheet_num = book.nsheets ...
- Java poi插件导出Excel文件合并多sheet页
文章目录 一.java导出excel格式文件 二.excel文件多sheet页合并 前言:2020年第一篇文章,就写这两天工作中遇到的这个小需求吧,导出多excel,每个excel有多个sheet页, ...
最新文章
- linux ps pstree pstack命令
- 使用正当时!用扩展全面武装Firefox
- 如何知道自己的php安装在哪,如何知道安装了哪些PHP扩展
- [Web开发] IE文档模式终极指南
- java 地图渲染_离屏渲染在车载导航中的应用
- container-coding-codec
- (python版)《剑指Offer》JZ58:对称的二叉树
- 数据分析 - 数据可视化图表 适用场景(学习笔记)
- 自学Java第二天 解决java不能输出中文问题
- asp.net实现识别客户端浏览器或操作系统
- telegram java,telegram_bot
- css文件组件化(不需要再创css文件了)
- GitHub超6.8万星,最全Python入门算法来了
- securefx显示linux目录,使用secureFX连接到linux上需要在linux上配置什么
- Linux-SSH反向连接(内网穿透,打洞)
- 给大家推荐一款由PHP+MYSQL搭建的同城跑腿系统
- WPF弹窗框自定义可自定义样式
- 随机抽奖小程序(C#)
- NullPointerException异常的原因及java异常
- Jsoup的网页工具类
热门文章
- codeforces D.The Bakery
- Struts2-062_RCE简单复现(CVE-2021-31805)
- 【裂缝识别】基于matlab GUI路面裂缝识别(带面板)【含Matlab源码 1648期】
- countif函数的使用方法汇总
- 遥仰凰华重装系统后无法运行解决方法
- 隆重推荐:男人来自火星,女人来自金星
- Python基础练习题(按条件对指定序列求和,打印99乘法表、求斐波那契数列、百马百担、求水仙花数、求n以内的所有质数(素数)和)
- 可以自动下载字幕的播放器-shooter player 射手播放器
- 【洛谷 P3403】跳楼机(SPFA)
- https://github.com/