xlsx xlsx-style file-saver 导出json数据到excel文件并设置标题字体加粗

news/2024/7/21 7:41:48 标签: json, excel
  • xlsx:用于处理Excel文件。
  • xlsx-style:用于添加样式到Excel文件中。
  • file-saver:用于将生成的Excel文件保存到用户的计算机上
npm install xlsx xlsx-style file-saver
// 导入所需库
const XLSX = require('xlsx');
const XLSXStyle = require('xlsx-style');
const FileSaver = require('file-saver');

// 示例JSON数据
const jsonData = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 28 }
];

// 创建一个工作簿
const wb = XLSX.utils.book_new();
const wsName = 'Sheet1';

// 将JSON数据转换为工作表
const ws = XLSX.utils.json_to_sheet(jsonData, { header: ['name', 'age'] });

// 设置标题字体样式
const titleCellStyle = { font: { bold: true } };
ws[XLSX.utils.encode_cell({ r: 0, c: 0 })].s = titleCellStyle;

// 将工作表添加到工作簿
XLSX.utils.book_append_sheet(wb, ws, wsName);

// 将工作簿转换为二进制数据
const wbout = XLSXStyle.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' });

// 将二进制数据保存为Excel文件
const blob = new Blob([s2ab(wbout)], { type: 'application/octet-stream' });
FileSaver.saveAs(blob, 'data.xlsx');

// 辅助函数:将字符串转换为ArrayBuffer
function s2ab(s) {
  const buf = new ArrayBuffer(s.length);
  const view = new Uint8Array(buf);
  for (let i = 0; i < s.length; i++) {
    view[i] = s.charCodeAt(i) & 0xFF;
  }
  return buf;
}


http://www.niftyadmin.cn/n/4948704.html

相关文章

AB跳转轮询:让你的独立站收款智能化

独立站在近两年成为跨境电商的热门布局之一&#xff0c;特别是在亚马逊封号潮后&#xff0c;许多卖家开始转向独立站运营。然而&#xff0c;在迅速发展的同时&#xff0c;也不可避免地出现了一些问题&#xff0c;比如很多卖家的资金经常被不同程度地冻结&#xff0c;好不容易出…

vue使用jsplumb 流程图

安装jsPlumb库&#xff1a;在Vue项目中使用npm或yarn安装jsPlumb库。 npm install jsplumb 创建一个Vue组件&#xff1a;创建一个Vue组件来容纳jsPlumb的功能和呈现。 <template><div style"margin: 20px"><div style"margin: 20px">&l…

系统架构设计师---2018年下午试题1分析与解答(试题四)

系统架构设计师---2018年下午试题1分析与解答 试题四 阅读以下关于分布式数据库缓存设计的叙述,在答题纸上回答问题 1 至问题 3. 【说明】 某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快速开展业务,该企业采用轻量型的开发架构(脚本语言+关系型…

Viobot ROS主从机配置

本篇介绍如何配置Viobot的ROS主从机&#xff0c;设备已经默认配好了主机的大部分设置&#xff0c;由于涉及到开机自启动&#xff0c;所以主机必须是Viobot。 以虚拟机ubuntu20.04为例。 1.从机配置 虚拟机终端输入命令,输入密码&#xff0c;按下图修改文件&#xff0c;保存…

2023全国大学生数学建模竞赛A题B题C题D题E题思路+模型+代码+论文

目录 一. 2023国赛数学建模思路&#xff1a; 赛题发布后会第一时间发布选题建议&#xff0c;思路&#xff0c;模型代码等 详细思路获取见文末名片&#xff0c;9.7号第一时间更新 二.国赛常用的模型算法&#xff1a; 三、算法简介 四.超重要&#xff01;&#xff01;&…

Android Studio:Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

原项目使用jdk8&#xff0c;升级gradle后出现的该问题。 java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7at org.codehaus.groovy.vmplugin.VMPluginFactory.<clinit>(VMPluginFactory.java:43)at org.codehaus.gro…

DAY2,ARM(特殊功能寄存器,数据操作指令,跳转指令)

1.cmp、sub、b指令的使用&#xff1b; 代码&#xff1a; .text .global _start _start:mov r0,#9mov r1,#15loop:cmp r0,r1beq stopsubcc r1,r1,r0subhi r0,r0,r1b loopstop:b stop .end结果&#xff1a; 2.汇编指令计算1~100之间和&#xff1b; 代码&#xff1a; .text .gl…

Linux网络编程(多路IO复用select函数使用)

文章目录 前言一、什么是多路IO复用二、select函数讲解三、使用select编程并发服务器四、select函数的缺点总结 前言 本篇文章带大家来学习一下多路IO复用select函数的使用。 一、什么是多路IO复用 1.多路I/O复用&#xff08;Multiplexing I/O&#xff09;是一种用于同时监视…