實現js讀取Excel數據


如何通過js去讀取excel中的數據

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Excel數據獲取</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">
<textarea id="area"></textarea>
<script>
    //給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);
            $("#area").val(JSON.stringify(persons));
        };
        // 以二進制方式打開文件
        fileReader.readAsBinaryString(files[0]);
    });
</script>
</body>
</html>

如果需要在vue中使用,只需要將部分方法轉化為vue中對應的方法即可,下一篇文章出一個vue中詳細獲取方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM