javascript 如何使用Nextjs/React将JSON对象导出到Excel?

1hdlvixo  于 2023-01-07  发布在  Java
关注(0)|答案(2)|浏览(155)

我有一个端点,它检索一个json对象,如下所示:

"data": [
{
"id": 1,
"temaIndicador": "Indian",
"codigo": "001",
"observaciones": "Interactions Specialist tertiary Regional Tennessee",
"activo": "SI",
"urlImagen": "http://placeimg.com/640/480",
"color": "cyan",
"createdAt": "2022-01-26T18:48:36.002Z"
]

我想实现一个按钮,允许用户将数据导出为多种格式,包括Excel(.xlsx),但我真的不知道从哪里开始。我已经看到一些库实现了这一点,但我觉得不舒服,因为他们通常每周的下载量不到1.5k。
我的目的是导出一个Excel文档,其中包含一个简单的表格,表格的标题将是对象的属性。

vxf3dgd4

vxf3dgd41#

使用xlsx第三方库。

npm install xlsx

使用库:(使用以下行之一导入)-

import XLSX from "xlsx";

import * as XLSX from 'xlsx';

单击按钮时下载函数触发器(将数据作为参数传递):

downloadExcel = (data) => {
    const worksheet = XLSX.utils.json_to_sheet(data);
    const workbook = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
    //let buffer = XLSX.write(workbook, { bookType: "xlsx", type: "buffer" });
    //XLSX.write(workbook, { bookType: "xlsx", type: "binary" });
    XLSX.writeFile(workbook, "DataSheet.xlsx");
  };

下载按钮:(函数调用:您应该根据自己的需求进行修改,下面一个是React类组件实现,这就是我使用this的原因)

<button onClick={()=>this.downloadExcel(data)}>
    Download As Excel
</button>
bfhwhh0e

bfhwhh0e2#

根据接受的答案,如果有人收到“尝试导入错误:“xlsx”不包含默认导出(导入为“XLSX”)”错误,请尝试使用以下命令导入:

import * as XLSX from 'xlsx';

希望有帮助。

相关问题