2

我试图从表中显示 json 值。

但它从 Excel 创建 JSON(解析为一行)

我想将 excel 数据按列解析。

请帮助解决这个问题。

我正在使用角度来解析。

 Upload() {
     console.log(XLSX)
      let fileReader = new FileReader();
        fileReader.onload = (e) => {
            this.arrayBuffer = fileReader.result;
            var data = new Uint8Array(this.arrayBuffer);
            var arr = new Array();
            for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
            var bstr = arr.join("");
            var workbook = XLSX.read(bstr, {type:"binary"});
            var first_sheet_name = workbook.SheetNames[1];
            var worksheet = workbook.Sheets[first_sheet_name];
            console.log(worksheet)
            console.log(XLSX.utils.sheet_to_json(worksheet,{raw:true,sheetRows: 0}));
        }
        fileReader.readAsArrayBuffer(this.file);
}

         <table>
         <tr>
         <td>
         NodeID
         </td>
         <td>
         Coles
         </td>
         <td>
         Platinum
         </td>
         <td>
         Rewards
         </td>
         </tr>
         <tr>
         <td>
         test
         </td>
         <td>
         15
         </td>
         <td>
         14
         </td>
         <td>
         12
         </td>
         </tr>
         <tr>
         <td>
         Test2
         </td>
         <td>
         56
         </td>
         <td>
         5656
         </td>
         <td>
         12
         </td>
         </tr>
         </table>
         

我参考了以下链接,但没有用。https://github.com/SheetJS/js-xlsx/issues/691

上面的 excel 应该从列中解析为 JSON

输出应该是

{NodeId : {test1: 15,Test2:56}}

4

1 回答 1

0

你可以使用 NPM 的这个包来让你的生活更轻松: https ://www.npmjs.com/package/csvtojson

另请注意,最好使用 const/let (not: var) 和 forEach() 而不是 for()

于 2018-07-04T18:40:46.657 回答