js实现读取excel文件

news/2024/7/21 6:51:00 标签: javascript, excel, 开发语言

1、引入js文件,如下

<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<script src="https://cdn.bootcss.com/xlsx/0.15.1/xlsx.core.min.js"></script>

2、判断文件是否是excel文件

var url=$('#excel-file').val();
if(!url){return;}
var suffix=url.substring(url.lastIndexOf(".")+1,url.length);
if(!(suffix=="xls"||suffix=="xlsx")){
	return alert("文件类型不正确");
}

3、读取excel的sheet数据

var files = e.target.files;
var fileReader = new FileReader();
 /**以二进制方式打开文件*/
fileReader.readAsArrayBuffer(files[0]);
fileReader.onload = function (ev) {
	try {
			var data = ev.target.result;
			var workbook = XLSX.read(data, { type: 'array' }),persons = [];
	} catch (e) {
			console.error(e);
			return alert('文件类型不正确!');
	}
	//遍历每张表读取
	for (var sheet in workbook.Sheets) {
		if (workbook.Sheets.hasOwnProperty(sheet)) {
			persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet], { raw: true, header: 1 }));
			for ( var i = 0; i <persons.length; i++){
				var person=persons[i];
				var tr='<tr id="tr-'+i+'">';
				for (var j = 0; j <person.length; j++){
					 tr+='<td>'+$.trim(person[j]?person[j]:"")+'</td>';
				}
				for (var k = 0; k < (6-person.length); k++) {
					tr+='<td></td>';
			     }
				if(person.length>1){
					tr+='<td style="padding:6px;"><a href="javascript:$(\'#tr-'+i+'\').remove();" class="btn btn-danger btn-xs">删除</a></td></tr>';
						  $("#context").append(tr);
					}
				}
			break;// 如果只取第一张表,就把beak注释取消
		}
	}
};


http://www.niftyadmin.cn/n/5446856.html

相关文章

YOLOv5全网首发改进: 注意力机制改进 | 上下文锚点注意力(CAA) | CVPR2024 PKINet 遥感图像目标检测

💡💡💡本文独家改进:引入了CAA模块来捕捉长距离的上下文信息,利用全局平均池化和1D条形卷积来增强中心区域的特征,从而提升检测精度,CAA和C3进行结合实现二次创新,改进思路来自CVPR2024 PKINet,2024年前沿最新改进,抢先使用 💡💡💡小目标数据集,涨点近两个…

探索Garnet:微软开源的高性能分布式缓存存储系统

微软研究院近期宣布推出一款名为Garnet的创新开源分布式缓存存储系统&#xff0c;致力于解决现代应用程序在处理大规模数据时对于高吞吐量、低延迟及卓越可扩展性的严苛要求。这款基于C# .NET 8.0构建的新型系统&#xff0c;充分利用了现代硬件能力&#xff0c;为应用程序开发人…

paddlepaddle框架构建数据集进行分类问题的时候,会发现数据集在构建的过程中不会构建标签(花分类)

问题描述 在做一个paddlepaddle项目的时候&#xff0c;需要使用神经网络对他进行分类&#xff0c;数据集的结构如下图&#xff0c;这时候我们可以使用常用dataset方法对数据集进行构建。 这时候我们就会发现一个问题&#xff0c;就是这个矿建不是构建标签&#xff0c;也就是说…

mysql无法看到3306端口监听

参考:https://blog.csdn.net/shumeigang/article/details/103902459 mysql> show global variables like ‘port’; 是0 原因是我的my.cnf有话&#xff1a; skip-network 或 注释掉&#xff0c;然后重新启动下数据库&#xff0c;运行netstat -an|grep 3306 就可以看到了

「媒体宣传」企业活动发布会邀请媒体报道的好处与优势?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业活动发布会邀请媒体报道具有多种好处与优势&#xff0c;这些都有助于提升企业的知名度、形象和影响力。以下是一些主要的好处与优势&#xff1a; 提升品牌知名度&#xff1a;媒体报道…

Java代码基础算法练习-递归求数-2024.03.22

任务描述&#xff1a; 利用递归函数调用方式&#xff0c;将所输入的5个字符&#xff0c;以相反顺序打印出来。 任务要求&#xff1a; 代码示例&#xff1a; package march0317_0331;import java.util.Scanner;/*** m240322类&#xff0c;提供了一个反转输入字符串前5个字符的…

xss漏洞总结

学了好久的漏洞&#xff0c;现在来做个小总结。 目录 一、xss简要概述 二、同源策略 三、主要危害 四、存在的场景 五、攻击类型 反射型、储存型、DOM型 六、绕过技巧 七、payload标签 八、防御 一、xss简要概述 概述&#xff1a; xxs全称&#xff1a;跨站脚本&#xff08;cr…

从零开始学习在VUE3中使用canvas(六):lineCap(线条端点样式)

一、简介 lineCap能够让我们设置线条的端点样式&#xff0c;例如 1. butt const ctx canvas.getContext("2d");ctx.lineCap "butt"; // 默认样式&#xff0c;也可以显式指定 2.round const ctx canvas.getContext("2d");//圆头ctx.lineCap …