簡體   English   中英

如何使用JavaScript解析和迭代Excel工作表文件中的所有行

[英]How to parse, and iterate through, all rows from an Excel sheet file using JavaScript

我試圖解析並讀取Excel工作表中的每個單元格; 似乎我正在解析文件,但無法瀏覽每個單元格並顯示它們。

我正在使用以下代碼:

    var workbook = XLSX.read('datasets/persons.xlsx', { type: 'binary' });
    var sheet_name_list = workbook.SheetNames;


    // console.log(sheet_name_list);
    sheet_name_list.forEach(function (y) { /* iterate through sheets */
      //Convert the cell value to Json
      console.log(y);
      var roa = XLSX.utils.sheet_to_json(workbook.Sheets[y]);
      console.log(roa);
      if (roa.length > 0) {
        result = roa;
      }
  });

當我嘗試打印console.log(roa) ,出現了一個空數組,我該如何遍歷文件中的每個單元格?

您可以使用

XLSX.utils.sheet_to_row_object_array(workbook.Sheets [Y])

解析excel文件中的每個單元格。

這是完整的代碼,用於通過JavaScript和JQuery顯示Excel工作表文件。

    function handleFile(e) {
        //alert(e);
        var exceljsonObj = [];
        var files = e.target.files;
        var i, f;
        for (i = 0, f = files[i]; i != files.length; ++i) {
            var reader = new FileReader();
            var name = f.name;
            reader.onload = function (e) {
                var data = e.target.result;
                var result;
                var workbook = XLSX.read(data, { type: 'binary' });
                var sheet_name_list = workbook.SheetNames;
                sheet_name_list.forEach(function (y) { /* iterate through sheets */
                    //var exceljsonObj = [];
                    var rowObject  =  XLSX.utils.sheet_to_row_object_array(workbook.Sheets[y]);
                    exceljsonObj = rowObject;
                        for(var i=0;i<exceljsonObj.length;i++){
                        //var recordcount = exceljsonObj.length;
                        var data = exceljsonObj[i];
                        $('#myTable tbody:last-child').append("<tr><td>"+data.ID+"</td><td>"+data.Name+"</td><td>"+data.Months+"</td></tr>");
                        }
                    //alert(exceljsonObj.length);
                        $('#alermessage').each(function() {
                           //this points to item
                           alert('Record Count is '+exceljsonObj.length);
                        });
                });
            };
            reader.readAsArrayBuffer(f);
        }
    }
  $(document).ready(function(){
    $('#files').change(handleFile);
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM