• javascript导入excel文件


            导入文件用到一个 xlsx.core.js 的包。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <script type="text/javascript" src="./xlsx.core.min.js">script>
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <input type="file" id="file" style="display:none;" />
    11. <button onclick="importFile()">导入button>
    12. body>
    13. <script type="text/javascript" src="./index.js">script>
    14. html>

            隐藏 input 框,加一个 button 按钮可以方便的调节按钮的样式。

    1. function importFile() {
    2. console.log('导入');
    3. document.getElementById('file').click();
    4. }
    5. document.getElementById('file').addEventListener('change', function (e) {
    6. let files = e.target.files;
    7. if (files.length == 0) return;
    8. let f = files[0];
    9. if (!/\.xlsx$/g.test(f.name)) {
    10. alert('仅支持读取xlsx格式!');
    11. return;
    12. }
    13. e.target.value = "" // 清空上一次上传的数据,防止第二次无法上传
    14. readWorkbookFromLocalFile(f, function (workbook) {
    15. readWorkbook(workbook);
    16. });
    17. });
    18. function readWorkbookFromLocalFile(file, callback) {
    19. let reader = new FileReader();
    20. reader.onload = function (e) {
    21. let data = e.target.result;
    22. let workbook = XLSX.read(data, { type: 'binary' });
    23. if (callback) callback(workbook);
    24. };
    25. reader.readAsBinaryString(file);
    26. }
    27. function readWorkbook(workbook) {
    28. let sheetNames = workbook.SheetNames; // 工作表名称集合
    29. console.log(sheetNames, 'sheetNames');
    30. let worksheet = workbook.Sheets[sheetNames[0]]; // 读取第一张sheet
    31. console.log(worksheet, 'worksheet');
    32. let json = XLSX.utils.sheet_to_json(worksheet);
    33. // let json = XLSX.utils.sheet_to_json(worksheet, { range: 1 }) // range: 1 可以设置是从第几行开始读,不设置从第一行开始读
    34. console.log(json, 'json');
    35. }

            文件信息。

            页面上取值。

  • 相关阅读:
    (网络编程)模拟客户端与服务端的交互
    Dijkstra算法详解
    IP在网络通信中的重要作用
    10 Go语言中接口运算,空接口
    【汇总】nltk相关资源包无法下载报错问题
    5个最好的乐高设计软件
    Java------Stream流式编程常用API【.stream,filter(),map()】(三)
    2022-08-26
    clipStudioPaint插件开发之服务套件(一)
    2、计算机图形学——视图变换
  • 原文地址:https://blog.csdn.net/h360583690/article/details/139422525