javascript - JSON到excel的转换
问题描述
我正在将 JSON 数据转换为 excel 文件格式。到目前为止,我已经能够使用数据创建一个文件。我期待在第一行添加要显示的自定义消息(下图),然后数据应显示在带有列标题的文件中。
我参考了这个stackblitz 链接
我怎样才能做到这一点?
新问题
Missing headers firstName, lastName, email, phone
解决方案
我假设当您说 JSON 时,您的意思是从 JSON 文件解析的 Javascript 对象。在我的例子中是myObject
.
- 我们使用创建一个工作表
XLSX.utils.json_to_sheet(myObject);
- 我们使用以下方法在工作表的开头添加一行:
XLSX.utils.sheet_add_aoa(myWorkSheet, [["Your Mesage Goes Here"]], { origin: 0 });
这会将 aoa(数组数组)插入到由定义的位置的新行中origin
。{ origin: 0 }
表示第一行{ origin: 1 }
表示第二行{ origin: -1 }
表示最后一行
在我们的例子中,我们只添加了一个单元格 (A1),其内容为:“Your Message Goes Here”
我们使用合并范围 A1:D1(4 个单元格)中的单元格
myWorkSheet['!merges'] = [{ s: 'A1', e: 'D1' }];
其余的我认为是不言自明的
这是一个工作示例
myObject = [
{ name: "Moran", role: "back" },
{ name: "Alain", role: "front" },
{ name: "Tony", role: "back" },
{ name: "Mike", role: "back" },
{ name: "Abo", role: "back" },
{ name: "Toni", role: "back" }
];
function exportWS() {
var myFile = "myFile.xlsx";
var myWorkSheet = XLSX.utils.json_to_sheet(myObject);
var myWorkBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(myWorkBook, myWorkSheet, "myWorkSheet");
XLSX.writeFile(myWorkBook, myFile);
}
function exportWSPlus() {
var myFile = "myFilePlus.xlsx";
var myWorkSheet = XLSX.utils.json_to_sheet(myObject);
XLSX.utils.sheet_add_aoa(myWorkSheet, [["Your Mesage Goes Here"]], { origin: 0 });
var merges = myWorkSheet['!merges'] = [{ s: 'A1', e: 'D1' }];
var myWorkBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(myWorkBook, myWorkSheet, "myWorkSheet");
XLSX.writeFile(myWorkBook, myFile);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.14.3/xlsx.full.min.js"></script>
<button type="button" onclick="exportWS()">Export Worksheet</button>
<button type="button" onclick="exportWSPlus()">Export Worksheet+</button>
随时问您可能有的任何问题。
推荐阅读
- python - 是否可以将在线字体文件链接到 PIL ImageFont.truetype()?
- swift - SwiftUI 视图注入到其他视图
- spring-webflux - 如何在 Spring Webflux 中设置 OverflowStrategy?
- php - 如何使用 git pull 使用 php exec 拉取数据
- android - 在 Android Lollipop 上运行 Chrome 自定义选项卡 - 仅从 Android N 开始支持静态接口方法
- java - 如何为具有外键的表编写实体和发布请求(按 id)
- python - tkinter 中的文件对话
- html - 图像不会使用 CSS 和 HTML 代码调整大小或调整
- prolog - Prolog如何利用列表元素作为谓词中的变量
- json - Content-Type: application/json 不能与 all() 之外的任何 eloquent 一起使用