无法将excel文件中的空白单元读取到2d数组中

问题描述 投票:0回答:1

代码可以正常工作,除非单元格为空,否则将忽略空单元格。我知道有

  • 解决方案1。条件为“ if(h === undefined)continue;”在“ xlsx.core.min.js”中将其注释掉。

  • 解决方案2。通过在运行此XLSX.utils.sheet_to_json(wb.Sheets [name],{blankCell:false})时传递Condition额外的参数。在行号上添加一个条件19150“ if(defval ===未定义&& blankCell)继续;”在文件xlsx.js等中。

但是我的项目中没有“ xlsx.core.min.js”文件,我不能对行号进行罚款。 19150为解决方案2添加编码,而且我也没有创建JSON对象。

我的代码:

onChange = (event) => {
        let newRows = this.state.rows;
        let files = event.target.files, f = files[0];
        var reader = new FileReader();
        reader.onload = (event) => {
            let newRowCt = this.state.rowCt;
            let newColCt = this.state.colCt;
            var data = new Uint8Array(event.target.result);
            var workbook = XLSX.read(data, { type: 'array' });
            const sn = workbook.SheetNames[0];
            const sheet = workbook.Sheets[sn];
            console.log(sheet["!ref"]);
            let row = 1;
            let col = 0;
            Object.keys(workbook.Sheets[sn]).map((cell) => {
                if (sheet[cell].w !== undefined) {
                    if (row !== parseInt(cell.slice(1), 10)) {
                        row++;
                        col = 0;
                        if (row >= newRowCt) {
                            newRows.push([]);
                            for (let k = 0; k < newColCt; k++) {
                                newRows[row].push("");
                            }
                            newRowCt++;
                            console.log(newColCt);
                        }
                    }
javascript js-xlsx
1个回答
0
投票

您可以创建excel.js文件来确定您在excel中的工作,例如读取,写入,选择列等。在我的代码示例中,我是在该路径下执行的:“ ./ lib / excel.js”然后,您可以导出这些方法。这将是更好的用法。

const XLSX = require('xlsx');

const read = filePath => {
  const workbook = XLSX.readFile(filePath);  //it reads all excel file
  const sheetnamelist = workbook.SheetNames; //it takes all sheet names

  return XLSX.utils.sheet_to_json(workbook.Sheets[sheetnamelist[0]]); //it returns json from your first sheet 
};

module.exports = {
  read
};

然后您可以在app.js上使用此文件导入excel.js文件。

const excel = require('./lib/excel');

在下面调用您的方法代码。

const xlsx = excel.read(yourExcelFilePath);
console.log(xlsx);

您将看到空单元格为''变量。

© www.soinside.com 2019 - 2024. All rights reserved.