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

如何用jQuery将JSON转XLSX后的横向数据改为纵向显示?

将JSON转换为纵向显示的XLSX文件

我参考Stack Overflow上的《Javascript JSON to Excel file download》方案,已经成功把JSON数据转换成XLSX文件,但生成的内容是横向显示的。因为只需要处理单个长对象数据,为了提升可读性,想改成纵向显示,该怎么做?

横向显示效果:
横向显示效果

纵向显示效果:
纵向显示效果

当前实现代码:

var data = [{
    "Name": "Michael",
    "Place": "Home",
}]

filename='personal.xlsx'; 
var ws = XLSX.utils.json_to_sheet(data);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "People");
XLSX.writeFile(wb,filename);

解决方案

问题出在XLSX.utils.json_to_sheet()默认会把对象的键作为表头,值作为同一行的单元格,所以是横向布局。要实现纵向显示,需要把原对象的键值对转换成每行一个键值的二维数组,再用XLSX.utils.aoa_to_sheet()生成工作表。

修改后的代码

var data = {
    "Name": "Michael",
    "Place": "Home",
    // 可添加更多属性
};

// 1. 将对象转为[key, value]格式的二维数组
var verticalData = Object.entries(data);
// 可选:添加表头行,让表格更清晰
// verticalData = [["属性", "值"], ...verticalData];

var filename = 'personal.xlsx'; 
// 2. 使用aoa_to_sheet创建纵向布局的工作表
var ws = XLSX.utils.aoa_to_sheet(verticalData);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "People");
XLSX.writeFile(wb, filename);

代码说明

  • Object.entries(data)会把对象转换成[[键1, 值1], [键2, 值2], ...]的二维数组结构,正好对应纵向表格的每行数据。
  • 如果需要表头,只需在二维数组最前面插入["属性", "值"]这样的行即可。
  • 后续创建工作簿、写入文件的步骤和原有逻辑一致,无需改动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:52:19