目录

前端解析Excel文件内容

前端解析Excel文件内容

前端解析Excel文件内容

一、首先创建一个简单的HTML项目

https://i-blog.csdnimg.cn/blog_migrate/c858437b9638f4f9fa11d4c3dcbb16d0.png

1、我使用的是HBuilder X创建了一个简单的HTML项目,也可手动创建都没关系。

2、引入最基本的jquery脚本库。

3、为了方便看出是否解析完成,这里用了layui的提示效果,也可引入别的提示效果。

4、引入解析Excel文件的脚本(文章第五点后提供Demo项目)。

二、创建简单的Excel,并填写一些数据

https://i-blog.csdnimg.cn/blog_migrate/a20b30c3391543112ca7c252d282c136.png

https://i-blog.csdnimg.cn/blog_migrate/cb9310c7dd4b74c467d530f11b0c300b.png

Excel文件中的栏位允许存在公式,当解析时,会自动转换成计算后的值。

三、编写HTML代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<link type="text/css" href="js/layui.css" />
	</head>
	<body>
		<div>
			<input type="button" value="Excel导入" οnclick="$('#testImport').click()"/>
			<input id="testImport" style="display: none;" type="file" οnchange="testImport(this)" accept="*"/>
		</div>
	</body>
	<script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
	<script type="text/javascript" src="js/xlsx.full.min.js"></script>
	<script type="text/javascript" src="js/layui.all.js"></script>
	<script type="text/javascript">
		function testImport(obj) {
				//判断是否为文件
				if (!obj.files) {
					return;
				}
				var index = layer.load(1, { shade: [0.1,'#fff']});
				var f = obj.files[0];
				var reader = new FileReader();
				reader.onabort = function(e) {
					alert("中断了")
				}
				reader.onerror = function(e) {
					alert("出错了")
				}
				reader.onloadstart = function() {
					//开始
					console.log("onloadstart")
				}
				reader.onloadend = function() {
					//结束
					console.log("onloadend")
				}
				reader.onload = function(e) {
					//$("#testImport").val(null); //清空文件栏
					var data = e.target.result;
					var wb = XLSX.read(data, {
						type: 'binary'		//设置类型,读取二进制
					});
					
					//读第一个Sheet文件内容
					var items = JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]));
					items = JSON.parse(items);
					console.log(items)
					
					//读第二个Sheet文件内容
					var itemTwo = JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[1]]));
					itemTwo = JSON.parse(itemTwo);
					console.log(itemTwo)
					layer.closeAll();
				}
				reader.readAsBinaryString(f);
			}
	</script>
</html>

四、页面及上传后的效果

https://i-blog.csdnimg.cn/blog_migrate/8999bf5d736f94452279246acebf1a8f.png

https://i-blog.csdnimg.cn/blog_migrate/600573cfe7720c7ff10952ed4d944238.png

五、Demo下载地址

地址:https://pan.baidu.com/s/1CDuF6lrmYXpkdppLfCIgQg

提取码:y9ua