You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XLSX库写入Excel文件时如何保留原数据字段顺序

问题原因

XLSX.utils.json_to_sheet 默认会对传入对象的键执行自动排序:当键为可解析为整数的字符串时,会优先按数字值大小排序,因此示例中的"10"、"11"会排在"00"、"01"前,和对象定义的字段顺序不一致。

修复方法

调用json_to_sheet时传入第二个配置项,通过header字段显式指定列顺序,即可跳过默认排序逻辑,按预期顺序生成表格列。

修正后的完整代码:

const handleClick = () => {
    const wb = XLSX.utils.book_new();
    // 显式指定列顺序
    const ws = XLSX.utils.json_to_sheet(arrayofobjects, {
        header: ["00", "01", "10", "11"]
    });
    XLSX.utils.book_append_sheet(wb, ws, 'Test');
    XLSX.writeFile(wb, 'file.xlsx');
};

const arrayofobjects = [
    {
        "00": 4,
        "01": 6,
        "10": 12,
        "11": 7,
    },
    {
        "00": 7,
        "01": 7,
        "10": 4,
        "11": 5,
    }
]

若对象字段为动态生成,无需硬编码header数组,可提前取首个对象的键生成顺序数组:const header = Object.keys(arrayofobjects[0]),将该数组传入header配置即可,会严格遵循对象原有键的排列顺序。

内容的提问来源于stack exchange,提问作者venkata sai injarapu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 11:24:22