【问题标题】:xlsx to json with empty cellsxlsx 到带有空单元格的 json
【发布时间】:2019-07-18 01:10:09
【问题描述】:

我正在将一个文件从 xlsx 格式转换为 json,我可以正确地做到这一点,但我无法让它显示为空的单元格,请忽略它们。 我正在使用 XLSX 库。 这是我用来解析的代码。

const workbook = XLSX.readFile(filename);
        const sheet_name_list = workbook.SheetNames;
        let jsonPagesArray = [];
        sheet_name_list.forEach(function(sheet) {
                const jsonPage = {
                    name: sheet,
                    content: XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
                };
                jsonPagesArray.push(jsonPage);
            });
        res.json(
            {
                data:jsonPagesArray
            }
        );
        });

实际上,如果一个给这个:

xxx1 | xxx2 | xxx3
------------------
yyyy | yyyy | 
zzzz | zzzz | zzzz

它还给我:

    [
        {
            xxx1:yyyy,
            xxx2:yyyy
        }
    ],
    [
        {
            xxx1:zzzz,
            xxx2:zzzz,
            xxx3:zzzz
        }
    ]

我希望它返回给我这样的东西:

    [
        {
            xxx1:yyyy,
            xxx2:yyyy,
            xxx3:""
        }
    ],
    [
        {
            xxx1:zzzz,
            xxx2:zzzz,
            xxx3:zzzz
        }
    ]

【问题讨论】:

    标签: javascript node.js json xlsx


    【解决方案1】:

    您能否将代码中的content: XLSX.utils.sheet_to_json(workbook.Sheets[sheet]) 替换为content: XLSX.utils.sheet_to_json(workbook.Sheets[sheet], {defval:""}) 并重试?

    【讨论】:

    • 你是个宝石老兄。拯救了这一天。
    • 你是传奇!
    【解决方案2】:

    这应该可行。 Working example

    let XLSX = require('xlsx');
    const workbook = XLSX.readFile(filename);
    const sheet_name_list = workbook.SheetNames;
    let jsonPagesArray = [];
    sheet_name_list.forEach(function(sheet) {
            const jsonPage = {
                name: sheet,
                content: JSON.parse(JSON.stringify(XLSX.utils.sheet_to_json(workbook.Sheets[sheet],{defval:""})))
            };
            jsonPagesArray.push(jsonPage);
        });
    
    console.log(jsonPagesArray[0].content);
    

    【讨论】:

      【解决方案3】:

      你可以使用

      XLSX.utils.sheet_to_json(worksheet , {defval:""})
      

      【讨论】:

      • 这个问题已经有一个接受的答案,你的答案没有添加新信息
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多