为了获取excel表格信息问遍了度娘,但是结果很不爽,看了十个文章九个是一样的,剩下那个不一样是因为复制的时候没复制全!!!不止这些,复制也就算了,你也得给截图和注释啊,整个帖子赤裸裸的代码什么意思啊???
为了造福众多单身屌丝们。我觉得给之前的帖子的代码写明用法,各位如果觉得哥们儿某句解释写的不是很明白可以吐槽,我好改进,嘿嘿,下面进入正题吧骚年们
一、首先需要需要引入需要的包
这里是cdn引入的,不用下载,所以直接复制用就行了,不用那么麻烦自己去网上找包
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> <script src="https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js"></script>
二、一个上传文件的file类型的input标签
这里给它起个id就叫excel-file吧
<input type="file" id="excel-file">
三、js相关操作对选中.xls文件进行解析,获取数据
//给input标签绑定change事件,一上传选中的.xls文件就会触发该函数$('#excel-file').change(function(e) { var files = e.target.files; var fileReader = new FileReader(); fileReader.onload = function(ev) { try { var data = ev.target.result var workbook = XLSX.read(data, { type: 'binary' }) // 以二进制流方式读取得到整份excel表格对象 var persons = []; // 存储获取到的数据 } catch (e) { console.log('文件类型不正确'); return; } // 表格的表格范围,可用于判断表头是否数量是否正确 var fromTo = ''; // 遍历每张表读取 for (var sheet in workbook.Sheets) { if (workbook.Sheets.hasOwnProperty(sheet)) { fromTo = workbook.Sheets[sheet]['!ref']; console.log(fromTo); persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet])); // break; // 如果只取第一张表,就取消注释这行 } } //在控制台打印出来表格中的数据 console.log(persons); }; // 以二进制方式打开文件 fileReader.readAsBinaryString(files[0]); });
四、上传的.xls表格的信息
凄凄切切 | 1 | 1111 |
---|---|---|
44444 | 2 | 1112 |
44445 | 3 | 1113 |
44446 | 4 | 1114 |
44446 | 5 | 1115 |
44448 | 6 | 1116 |
44449 | 7 | 1117 |
44450 | 8 | 1118 |
44451 | 9 | 1119 |
44452 | 10 | 1120 |
44453 | 11 | 1121 |
44454 | 12 | 1122 |
44455 | 13 | 1123 |
44456 | 1124 | |
3www | ||
qqqq |
五、运行结果
让我们爽的是他返回的是json数组,这真是太方便我们操作了,但是有的吃瓜群众可能看不懂了,就一个‘凄凄切切’数据,怎么出来那么多,
其实我们excel表的第一行它默认为表头,也就是说,'1','1111',‘凄凄切切’这三个都是表头,它们的健值对所对应的值就是这一列的值,数组下表对应的则是表格的一行数据
六、最通俗易懂的解释
如果有的好汉看了之后也没懂,但是就是想拿过来直接用的话,那些下面直接copy运行就ok啦
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> <script src="https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js"></script> </head> <body> <input type="file" id="excel-file"> <script> $('#excel-file').change(function(e) { var files = e.target.files; var fileReader = new FileReader(); fileReader.onload = function(ev) { try { var data = ev.target.result, workbook = XLSX.read(data, { type: 'binary' }), // 以二进制流方式读取得到整份excel表格对象 persons = []; // 存储获取到的数据 } catch (e) { console.log('文件类型不正确'); return; } // 表格的表格范围,可用于判断表头是否数量是否正确 var fromTo = ''; // 遍历每张表读取 for (var sheet in workbook.Sheets) { if (workbook.Sheets.hasOwnProperty(sheet)) { fromTo = workbook.Sheets[sheet]['!ref']; console.log(fromTo); persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet])); // break; // 如果只取第一张表,就取消注释这行 } } console.log(persons); }; // 以二进制方式打开文件 fileReader.readAsBinaryString(files[0]); }); </script> </body></html>
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
相关文章