2022-06-15 来源:华纳网 责任编辑:谷雨 人气:
核心提示:知识点: 在H5中导入并解析Excel文件

知识点:

在H5中导入并解析Excel文件
 


 

本课内容:

大家好,欢迎来到谷雨课堂,

 

本节,

我们来学习一下,

如何在H5中导入并解析Excel文件,

而无需将文件上传到服务器。

 

这个功能,

我们使用的是一个开源的JS库文件,

 

在这个功能中,

最关键的部分就是把选中的文件以二进制打开,

  •  
  •  
var fileReader = new FileReader();fileReader.readAsBinaryString(files[0]);

 

 

完整的DEMO演示代码如下:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
<!DOCTYPE html><!--No.17 在H5中导入并解析Excel文件--><html><head><title></title><meta charset="utf-8"><meta http-equiv="x-ua-compatible"></head><body><input type="file" id="excel-file"><div id="info"></div></body><script src="./js/jquery.min.js"></script><script src="./js/vue.js"></script><script src="./js/alasql.js"></script><script src="./js/xlsx.core.min.js"></script><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;            }// 遍历每张表读取for (var sheet in workbook.Sheets) {if (workbook.Sheets.hasOwnProperty(sheet)) {var fromTo = workbook.Sheets[sheet]['!ref'];console.log(fromTo);var datas = workbook.Sheets[sheet];
// 如果有不规范数据可以在这里进行处理datas
                    persons = persons.concat(XLSX.utils.sheet_to_json(datas));                    break; // 只读了第一张表                }            }            info.innerHTML=JSON.stringify(persons)console.log(persons);        };// 以二进制方式打开文件        fileReader.readAsBinaryString(files[0]);    });</script></html>

 

完整的源代码可以登录【华纳网】下载。

 

https://www.worldwarner.com/






 





免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。