空单元格将xlsx转换为json

时间:2019-02-24 13:43:25

标签: javascript node.js json xlsx

我正在将文件从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
        }
    ]

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

这应该有效。 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);

答案 2 :(得分:1)

您可以使用

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