layui导入Excel文件

2023-11-09

具体如下图所示:

首先:导入layui第三方插件js,地址:https://fly.layui.com/extend/excel/ 

1、在页面中引入excel.js文件:

//引入excel
    layui.config({
        base: 'layui_ext/',
    }).extend({
        excel: 'excel',
    });

2、监听头工具栏的点击事件

// 监听头工具栏事件
table.on('toolbar(terminalConfig)', function(obj) {
	var layer = layui.layer;
	// 添加终端
	if(obj.event == 'import'){
		layer.open({
			type : 1,
			shade : false,
			area : [ '350px', '260px' ],
			title : '导入Excel',
			content : $("#ImportExcel"),
			cancel : function() {
					layer.close();
			},
			success : function(layero, index) {
					ImportExcel();
			},
		});
						
	}
//导入Excel结束
});
//监听头工具栏事件结束

3、ImportExcel()方法:

//导入方法
function ImportExcel(){
	var $ = layui.jquery
	  ,upload = layui.upload;
	  var uploadInst = upload.render({
		  elem: '#importExcel',
		  /*method: 'POST',*/
		  url: basePath + 'PowerUser/importPowerUserData.action',
		  accept: 'file', //普通文件
		  exts: 'xls|excel|xlsx', //导入表格
		  auto: false,  //选择文件后不自动上传
		  before: function (obj) {
			  layer.load(); //上传loading
		  },
		  choose: function (obj) {// 选择文件回调
			  var files = obj.pushFile();
			  var fileArr = Object.values(files);// 注意这里的数据需要是数组,所以需要转换一下
			  //console.debug(fileArr)
			  // 用完就清理掉,避免多次选中相同文件时出现问题
			  for (var index in files) {
				  if (files.hasOwnProperty(index)) {
					  delete files[index];
				  }
			  }
			  uploadExcel(fileArr); // 如果只需要最新选择的文件,可以这样写: uploadExcel([files.pop()])
		  },
		  error : function(){
			  setTimeout(function () {
				  layer.msg("上传失败!", {
						icon : 1
				});
				//关闭所有弹出层
				layer.closeAll(); //疯狂模式,关闭所有层
			  },1000);
		  }
	  });
}

4、uploadExcel()方法:

function uploadExcel(files) {
    try {
    	var excel = layui.excel;
        excel.importExcel(files, {
            // 读取数据的同时梳理数据
            fields: {
            	'tId' : 'A',
				'inport' : 'B',
				'state' : 'C',
				'householdNumber' : 'D',
				'accountName' : 'E',
				'phone' : 'F'
            }
        }, function (data) {
            var arr = new Array();
            for(i = 1; i < data[0].Sheet1.length; i++){
            	var tt = {
                    	cId : selectConcentrator,
                    	tId : data[0].Sheet1[i].tId,
                    	inport: data[0].Sheet1[i].inport,
                    	state: data[0].Sheet1[i].state,
                    	householdNumber: data[0].Sheet1[i].householdNumber,
                    	accountName: data[0].Sheet1[i].accountName,
                    	phone: data[0].Sheet1[i].phone,
                    };
            	arr.push(tt);
            }
            
            $.ajax({
                async: false,
                url: basePath + 'PowerUser/importPowerUserData.action',
                type: 'post',
                dataType: "json",
                contentType: "application/x-www-form-urlencoded",
                data: {
                	data : JSON.stringify(arr)
                },
                success: function (data) {
                	if(data.success){
                		layer.msg(data.message);
                		setTimeout(function () {
                			layer.closeAll(); //疯狂模式,关闭所有层
                		},1000);
                		//表格导入成功后,重载表格
                		tableIns.reload('testTerminalConfigReload',{
                             url : basePath + 'PowerUser/PowerUserDataTable.action',
                             page : {
     							limit : 10, // 初始 每页几条数据
     							limits : [ 10, 20, 30 ]
     						// 可以选择的 每页几条数据
     						},
     						where : {
     							cId : selectConcentrator,
     							tId : selectTerminal
     						},
     						parseData: function(res){ //res 即为原始返回的数据
     						    return {
     						      "code": 0, //解析接口状态
     						      "msg": res.message, //解析提示文本
     						      "count": res.total, //解析数据长度
     						      "data": res.data //解析数据列表
     						    };
     						}
                         }, 'data');
                	}else{
                		//表格导入失败后,重载文件上传
                		layer.alert(data.error+"请重新上传",{icon : 2});
                	}
                },
                error: function (msg) {
                    layer.msg('请联系管理员!!!');
                }
            });
        });
    } catch (e) {
        layer.alert(e.message);
    }
}

        方法4是读取数据,并对数据进行梳理。把Excel数据解析出来,然后把数据传到后端。后端对数据进行解析,然后插入数据库。成功之后,给前端返回"Excel导入成功"。Excel导入成功之后,重载表格,数据就可以在表格里显示了。

       以上是我主要的方法。

欢迎留言交流,互相学习。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

layui导入Excel文件 的相关文章

  • boost电路公式详解

    这个是我在设计boost电路遇到问题时找的文章 觉得说的很好 所以就转载过来方便查看 原文链接 https www eet china com mp a68179 html 以下是那边文章的内容 我们知道 不论是buck 还是boost电路
  • Centos7搭建简单的Samba服务器

    目录 背景要求 环境准备 在centos7中搭建一个简单的samba服务器用于测试 帮助理解samba服务的简易用法 背景要求 设置公共目录 所有人可以访问 权限为只 读 为结算中心和技术部分别建立单独的目录 只 允许公司总经理和对应部门员
  • 高德地图自定义车辆定位marker以及弹出框窗口

    地图安装 npm install vue amap save 项目中设置高德地图 安装成功后在main js设置以下内容 import VueAMap from vue amap Vue use VueAMap VueAMap initAM
  • 邻接矩阵无向图

    邻接矩阵 无向图和有向图在邻接矩阵中的表示方法 无向图和有向图大同小异 在这里只以无向图为例 代码部分通过简单调整即可对应编译有向图 邻接矩阵数据类型定义 define MaxVertices 100 定义最大容量 typedef stru
  • ASP.NET系统用户权限设计与实现

    引言 电子商务系统对安全问题有较高的要求 传统的访问控制方法DAC Discretionary Access Control 自主访问控制模型 MAC Mandatory Access Control 强制访问控制模型 难以满足复杂的企业环
  • react-native及npm install 安装问题

    我们项目中已经开始用react native 所以swift学习放下一段时间 学了一个月的rn 今天分享记录学习过程 学习资料整理 1 react native 中文网 http reactnative cn docs 0 27 getti
  • Qt-认清信号槽的本质

    目录 放个目录方便预览 这个目录是从博客复制过来的 点击会跳转到博客 简介 猫和老鼠的故事 对象之间的通信机制 尝试一 直接调用 尝试二 回调函数 映射表 观察者模式 Qt的信号 槽 信号 槽简介 信号 槽分两种 信号 槽的实现 元对象编译
  • 数据研发面经——字节跳动

    数据研发面经 字节跳动 1 抽象类与接口 2 多态 3 四种引用 4 锁 并发怎么处理 5 进程和线程的区别 6 shuffle机制 mapreduce流程 7 JVM虚拟机 为什么需要虚拟机 8 内存区域 五部分 栈和堆区别 具体存放的东
  • 2017.10.9 DZY Loves Math VI 失败总结

    一看到love math就知道肯定不会做 首先lcm拆成i j gcd i j 然后就讨论分子和分母 但并没有什么卵用 这个题对比传统反演题 主要不同的是f函数不是很直观 所以如果枚举gcd 那剩下的两个数一定互质 然后就按照gcd 1的反
  • 思科VoIP配置清单(转)

    我配过简单的VoIP 用的是思科的设备 希望对你有用 R1接口为192 168 1 1 R2接口为192 168 1 2 R1 R2直连 并相互各连两部电话 要想实现互相通话 可以做如下配置 其中 5164765 6239560为连接R1的
  • C# 创建Excel并写入内容

    在许多应用程序中 需要将数据导出为Excel表格 以便用户可以轻松地查看和分析数据 在本文中 我们将讨论如何使用C 创建Excel表格 并将数据写入该表格 添加引用 在C 中创建Excel表格 需要使用Microsoft Office In
  • Typora和PicGo-Core搭配使用(解决博客单独上传图片问题)

    前言 本文简单介绍快速上传图片并获取图片 URL 链接的工具 图片存放到Gitee仓库中 在博客网站发布时不必担心图片转存失败问题 解决本地图片在网站需单独上传的难题 将本地图片存储在网络中 图床 并生成URL 联网情况下通过URL链接即可
  • Unity之六:项目实战篇

    文章目录 一 一个简单的实例 二 使用CMake组织项目与Unity 2 1 目录结构 2 2 CMakeLists txt的编写 2 3 使用实例 一 一个简单的实例 一个测试单元是源文件 测试文件和Unity构成的 把他们放在一起进行编
  • 【算法提升】——异或理解,位的运算

    个人主页 努力学习的少年 版权 本文由 努力学习的少年 原创 在CSDN首发 需要转载请联系博主 如果文章对你有帮助 欢迎关注 点赞 收藏 一键三连 和订阅专栏哦 目录 一 只出现一次的数字 1 二 数组中只出现一次的数字2 一 只出现一次
  • localStorage在Safari浏览器无痕模式下失效

    Safari无痕模式是不能使用localStorage的 可以利用这个特性判断用户是否开启无痕模式 并提醒用户关闭无痕模式 if typeof localStorage object try localStorage setItem loc
  • 学习笔记 JavaScript ES6 异步编程Promise

    Promise ES里面对异步操作的第一种方案 学习Promise 让异常操作变得优雅 Promise的精髓在于异步操作的状态管理 一个Promise最基本用法 他的参数是一个方法 这个方法里有两个参数 一个是异步操作执行成功的回调 一个是
  • DC综合脚本中文详细解释

    script for Design Compiler DC综合编译脚本 language TCL 语言说明 Usage 使用说明 1 make sure the lib in the current directory 确保设计库在正确的文
  • Xcode项目设置项中的LLVM

    LLVM是构架编译器
  • html5开发手机打电话发短信功能,html5的高级开发,html5开发大全,html手机电话短信功能详解

    原文地址 http blog csdn net xmtblog article details 32931905 在很多的手机网站上 有打电话和发短信的功能 对于这些功能是如何实现的呢 其实不难 今天我们就用html5来实现他们 简单的让你
  • Angular--官方文档之 Angular CLI

    学习Angular官方文档的时候 参考https angular cn guide quickstart 这个快速开发的文档 对于我这个AngularJs小白在看了Angular菜鸟教程后 只能说可以简单的运用一下 看到一些专业术语 我也是

随机推荐

  • 嵌入式Linux(四)—嵌入式C语言(杂项/数据类型关键字)

    目录 杂项关键字 sizeof Return 数据类型关键字 char 进制 int long short Unsigned signed Float double void 自定义数据类型 Struct Union enum typede
  • cppcheck使用

    cppcheck使用 cppcheck说明 cppcheck能够检查出来的问题 cppcheck使用并生成html结果 生成html结果 cppcheck说明 cppcheck主要用来检查c c 代码的 本文主要讲述cppcheck用命令行
  • Flutter 开发小结

    接触 Flutter 已经有一阵子了 期间记录了很多开发小问题 苦于忙碌没时间整理 最近项目进度步上正轨 借此机会抽出点时间来统一记录这些问题 并分享项目开发中的一点心得以及多平台打包的一些注意事项 希望能对大家有所帮助 UI 组件使用 官
  • Linux 下使用Crontab定时任务同时执行多条定时任务

    Linux 下使用Crontab定时任务同时执行多条定时任务 使用 符连接即可 示例如下 0 6 bea ceos timer bin pb ClosePbManifestTimer sh gt dev null 2 gt 1 bea ce
  • 【高项】质量管理(ITTO)

    过程组 子过程 输入 I 工具和技术 TT 输出 O 规划 1规划质量管理 1 项目章程 2 项目管理计划 需求管理计划 风险管理计划 相关方参与计划 范围基准 3 项目文件 假设日志 需求文件 需求跟踪矩阵 风险登记册 相关方登记册 4
  • QT源码剖析-QT对象通信机制信号槽的绑定具体实现

    本文详细介绍QT核心机制之一 信号和槽 我们在此根据Qt源代码一步一步探究其信号槽的实现过程 核心知识点 模板元编程技术 Qt moc预编译机制 QObject类 目录 1 QObject类介绍 2 相关助手类介绍 2 1 类型 函数指针
  • pip安装出现Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '

    问题描述 pip安装库或者更新pip版本时出现如下问题 Could not install packages due to an EnvironmentError Errno 2 No such file or directory c us
  • LeetCode 面试题01.09 字符串轮转

    题目 字符串轮转 给定两个字符串s1和s2 请编写代码检查s2是否为s1旋转而成 比如 waterbottle 是 erbottlewat 旋转后的字符串 示例1 输入 s1 waterbottle s2 erbottlewat 输出 Tr
  • 一个独特的开源插件evil.js

    前言 最近发现一个好玩有解压的开源插件 注意 不可使用在正式项目中 这里分享下 gitee地址 evil js 此代码仅在周日的时候执行以下逻辑 声明 请勿用于任何项目 如果导致任何问题 与本人无关https gitee com haoxi
  • 矩阵LU分解

    一 矩阵LU分解定理 设A为n阶矩阵 如果A的顺序主子式Di 0 i 1 2 n 1 则A可以分解为一个单位下三角矩阵L和一个上三角矩阵U的乘积 且这种分解是唯一的 即A LU 二 矩阵LU分解Python代码 自己原创 def lu de
  • 第十二章 - 条件判断(case when 和 if)和视图

    第十二章 条件判断 case when 和 if 和视图 view if 的用法 case when 的用法 视图 view 的用法 if 的用法 通过使用if函数可以实现数据二分类或者多分类的功能 比如按年龄区分青年 中年 老年 或者按价
  • Python2_Pandas库(数据读取)

    1 数据读取 food info csv数据 import pandas food info pandas read csv food info csv read csv函数读取csv数据文件 print type food info Da
  • 汇编笔记——判断大小

    判断指令 CMP AL num 判断条件 这里的JA JB JE JMP相当于goto命令 JA L0 A gt above AL比num大 执行L0 JB L1 B gt below AL比num小 执行L1 JE L2 E gt equ
  • 树结构转List

    使用LinkedList效率更高 1 单个顶级节点 public static List
  • 网络安全(黑客技术)自学笔记

    目录 一 自学网络安全学习的误区和陷阱 二 学习网络安全的一些前期准备 三 网络安全学习路线 四 学习资料的推荐 想自学网络安全 黑客技术 首先你得了解什么是网络安全 什么是黑客 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队
  • chromium之jumplist

    chrome在win7及之后系统添加jumplist功能 jumplist即系统任务栏相关的功能 包括任务栏图标 鼠标放置后视图 进度条 右键菜单等等 路径 chromium src chrome browser win jumplist
  • 21. 合并两个有序链表

    21 合并两个有序链表 简单 将两个升序链表合并为一个新的 升序 链表并返回 新链表是通过拼接给定的两个链表的所有节点组成的 输入 l1 1 2 4 l2 1 3 4 输出 1 1 2 3 4 4 示例 2 输入 l1 l2 输出 示例 3
  • vue 阻止事件冒泡,捕获方法

    要想了解 VUE 阻止事件冒泡和捕获方法 首先要了解一下 JS 事件和 JS 阻止事件冒泡 捕获方法 1 js 事件的三阶段 捕获阶段 目标阶段 执行当前对象的事件处理程序 冒泡阶段 2 js 阻止事件冒泡 捕获 阻止事件冒泡 event
  • OceanBase 安全审计之透明加密

    承接前文 OceanBase 安全审计的 传输加密 本文主要实践数据透明加密 并验证加密是否有效 作者 张乾 外星人2号 兼任四位喵星人的铲屎官 爱可生开源社区出品 原创内容未经授权不得随意使用 转载请联系小编并注明来源 本文约 1200
  • layui导入Excel文件

    具体如下图所示 首先 导入layui第三方插件js 地址 https fly layui com extend excel 1 在页面中引入excel js文件 引入excel layui config base layui ext ext