Node.js @zurmokeeper/exceljs 如何快速导出多表头的excel文件

news/2024/7/21 4:26:29 标签: node.js, excel, 后端

Node.js 如何快速导出嵌套列(多表头)的excel文件。效果图如下:

image.png

1:使用 @zurmokeeper/exceljs, V4.4.1以上 安装:

npm i @zurmokeeper/exceljs

2: 有一个 worksheet.makeColumns 方法,API文档: 代码示例:

const ExcelJS = require('@zurmokeeper/exceljs');
(async ()=>{
  const test = 'test.xlsx';

    const workbook = new ExcelJS.Workbook();
    const worksheet = workbook.addWorksheet('Sheet1', {
      views: [{state: 'frozen', xSplit: 0, ySplit: 2}], // 冻结第1行和第二行
    });
	// 设置多级表头
    worksheet.makeColumns([
      {
        id: 1,
        title: '姓名',
      },
      {id: 2, title: 'Qwe'},
      {id: 3, title: 'Foo'},
      {
        id: 4,
        title: '基础信息',
        children: [
          {id: 41, title: 'Zoo 1'},
          {id: 42, title: 'Zoo 2'},
          {id: 44, title: 'Zoo 3'},
        ],
      },
      {
        id: 5,
        title: 'Zoo1',
        children: [
          {id: 51, title: 'Zoo 51'},
          {id: 52, title: 'Zoo 52'},
          {id: 54, title: 'Zoo 53'},
        ],
      },
      {id: 6, title: 'Foo123213'},
    ]);
    const data = [
      [1, 2, 3, null, null, 'DOB'],
      [1, 'electron', 'DOB'],
      [1, 'electron', 'DOB'],
      [1, 'electron', 'DOB'],
      [1, 'electron', 'DOB'],
      [1, 'electron', 'DOB'],
      [1, 'electron', 'DOB'],
      [1, 'electron', 'DOB'],
    ];
    worksheet.addRows(data);
    worksheet.columns.forEach(function(column) {
      column.alignment = {horizontal: 'center', vertical: 'middle'};
    });
    await workbook.xlsx.writeFile(test);

})()

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

相关文章

Nuxt 菜鸟入门学习笔记四:静态资源

文章目录 public 目录assets 目录全局样式导入 Nuxt 官网地址: https://nuxt.com/ Nuxt 使用以下两个目录来处理 CSS、fonts 和图片等静态资源: public 目录 public 目录用作静态资产的公共服务器,可通过应用程序定义的 URL 公开获取。 换…

网络服务第二次作业

[rootlocalhost ~]# vim /etc/httpd/conf.d/vhosts.conf <Virtualhost 192.168.101.200:80> #虚拟主机IP及端口 DocumentRoot /www/openlab #网页文件存放目录 ServerName www.openlab.com #服务器域名 </VirtualHost> …

ATF(TF-A)安全通告 TFV-1 (CVE-2016-10319)

安全之安全(security)博客目录导读 ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-1 (CVE-2016-10319) 二、CVE-2016-10319 一、ATF(TF-A)安全通告 TFV-1 (CVE-2016-10319) Title 错误的固件更新SMC可能导致意外的大数据拷贝到安全内存中 CVE ID CVE-2016-10319 …

AI机器视觉赋能电池缺陷检测,深眸科技助力新能源行业规模化发展

新产业周期下&#xff0c;新能源行业风口已至&#xff0c;现代社会对于新能源电池产品需求量加大&#xff0c;对产品的质量安全也更加重视。当前&#xff0c;传统的检测方法已经不能满足新能源电池行业的发展&#xff0c;越来越多的厂商开始应用创新机器视觉技术与产品于生产环…

图片上传返回淘宝链接

简要描述 图片上传 请求URL http://xxx.xxx.xxx.xxx:xxxx/ali.uploads 请求方式 get 请求Query参数 参数名示例值必选类型说明imghttps://img.alicdn.com/imgextra/i2/2207375088936/O1CN016vjZiH2FsjsI2gx7c_!!2207375088936.jpg是string图片链接tokenadmin.api是strin…

row_number() over(partition by xx order by xx desc)

一、目的 主要用于根据某个字段对数据分组去重 二、demo 1. 有数据表 duplicate_test 如下 2. 使用 name 作为 key 对数据分组&#xff0c;并增加一列标识序号 idx&#xff08;根据 时间戳倒序标记序号&#xff09; select name,row_number() over(partition by name order…

【从零开始学习JAVA | 第四十六篇】处理请求参数

前言&#xff1a; 在我们之前的学习中&#xff0c;我们已经基本学习完了JAVA的基础内容&#xff0c;从今天开始我们就逐渐进入到JAVA的时间&#xff0c;在这一大篇章&#xff0c;我们将对前后端有一个基本的认识&#xff0c;并要学习如何成为一名合格的后端工程师。今天我们介绍…

自定义spring-boot-start的jar包被引用时,提示找不到bean

类似这个报错&#xff1a; 重点要看一下我们自定义的start包下的config配置 BeanConditionalOnProperty(prefix "file", value "iSenable", havingValue "true")public FileServiceTemplate fileServiceTemplate(){return new FileServiceTe…