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

使用JavaScript将JSON数据导出为XLS格式时如何调整表头顺序

问题原因

SheetJS的XLSX.utils.json_to_sheet方法默认会对传入JSON对象的键进行字母序重排,不会保留原始对象的键顺序,因此会出现导出表头和预期顺序不符的问题。

解决方案

调用json_to_sheet时通过配置项手动指定表头顺序即可,如果你使用的是动态生成的财年季度字段,可以直接提取首个数据项的键作为顺序基准,修改后的代码如下:

const xlsData = input
// 提取原始键顺序作为表头顺序,适配动态字段场景
const headerOrder = xlsData.length > 0 ? Object.keys(xlsData[0]) : []
// 传入header参数指定表头顺序
const ws = XLSX.utils.json_to_sheet(xlsData, {
  header: headerOrder,
  skipHeader: false
});
const wb = { Sheets: { 'data': ws }, SheetNames: ['data'] };
const excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
const data = new Blob([excelBuffer], { type: fileType });
let fileName = `test`
FileSaver.saveAs(data, fileName + fileExtension);

补充说明

如果你的业务场景可能出现空数组导出的情况,可以提前维护好固定的表头顺序数组直接传入header参数,不需要动态提取即可兼容。

内容的提问来源于stack exchange,提问作者Vishnu Vedagna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:45:02