JavaScript(node js)在读取Excel文件时跳过空单元格

JavaScript(node js)在读取Excel文件时跳过空单元格,javascript,node.js,excel,Javascript,Node.js,Excel,我正在做一个小任务,阅读Excel表格并以json格式保存。当所有单元格值都存在时,我使用的代码运行良好,如果有空单元格,它将跳过该单元格 如果没有显示任何值,我想要的输出(在我的情况下,我错过了cust2电话号码)如下所示 [{cust_name:'Ben', 卡斯特城:“1号街”, 客户所在国家:'country1', phno:1}, {客户名称:“肯”, 卡斯特城:“第二街”, 客户所在国家:'country2' phno:}, {客户名称:'Ron', 卡斯特城:“第三街”, 客户所在

我正在做一个小任务,阅读Excel表格并以json格式保存。当所有单元格值都存在时,我使用的代码运行良好,如果有空单元格,它将跳过该单元格

如果没有显示任何值,我想要的输出(在我的情况下,我错过了cust2电话号码)如下所示

[{cust_name:'Ben',
卡斯特城:“1号街”,
客户所在国家:'country1',
phno:1},
{客户名称:“肯”,
卡斯特城:“第二街”,
客户所在国家:'country2'
phno:},
{客户名称:'Ron',
卡斯特城:“第三街”,
客户所在国家:'country3',
phno:3}]

但我得到的结果是

[{cust_name:'Ben',
卡斯特城:“1号街”,
客户所在国家:'country1',
phno:1},
{客户名称:“肯”,
卡斯特城:“第二街”,
客户国家:'国家2'},
{客户名称:'Ron',
卡斯特城:“第三街”,
客户所在国家:'country3',
phno:3}]

它错过了为cust2提交的
phno

请帮助我弄清楚我必须在代码中更改什么才能获得所需的输出

我的代码是

 var XLSX = require('xlsx');
 var workbook = XLSX.readFile('customer.xlsx');
 var sheet_name_list = workbook.SheetNames;
 sheet_name_list.forEach(function(y) {
 var worksheet = workbook.Sheets[y];
 var headers = {};
 var data = [];
 for(z in worksheet) {
    if(z[0] === '!') continue;
    //parse out the column, row, and value
    var col = z.substring(0,1);
    var row = parseInt(z.substring(1));
    var value = worksheet[z].v;

    //store header names
    if(row == 1) {
        headers[col] = value;
        continue;
    }
    if(!data[row]) data[row]={};
    data[row][headers[col]] = value;
 }
 //drop those first two rows which are empty
 data.shift();
 data.shift();
 console.log(data);
 });

提前谢谢

我也面临同样的问题, 在阅读了库文档之后,上述问题的解决方案是将可选参数传递给XLSX.readFile函数

i、 易变

from:var workbook=XLSX.readFile('customer.XLSX')

至:var workbook=XLSX.readFile('customer.XLSX',{sheetStubs:true})

可选对象中的sheetStubs参数允许库列出默认情况下被库的数据处理实用程序忽略的单元格

**浏览图书馆的以下部分

1) 解析选项
2) 数据类型(强调数据类型z)。

如果第一行包含所有值,而第二行缺少一些值,该怎么办?我需要说的是,这些行中缺少一些值。我想表明,如果该字段为空,则该字段将丢失。这就是npm“xlsx”模块的问题。我也面临着这个问题。Nwz如果第一行有所有字段,那么我想它会工作得很好。再试一次啊,当然,我会再试一次。谢谢你经过了很多尝试,我仍然在努力解决我的问题,有人能帮我吗?上面确实允许我至少访问json对象的其余部分,除了它未定义的单元格,而不添加它,我的数组将在第一个空元素处结束。我现在需要更新一个元素,以便能够获取空单元格的“值”。到目前为止,另一个重要的部分是使用!此处引用的筛选函数中为null。我的数组仍然返回空值中没有对象的值。希望这能帮助别人。