首页 > 其他分享 >使用`xlsx-js-style`插件导出表格,并添加样式导出

使用`xlsx-js-style`插件导出表格,并添加样式导出

时间:2024-09-21 17:50:44浏览次数:9  
标签:xlsx 插件 const 表格 导出 style ws thin

安装

npm install xlsx-js-style --save

使用

  1. 引入
  import XLSX from 'xlsx-js-style'

  // 1.创建一个工作簿
  const wb = XLSX.utils.book_new()
  // 表格标题
     // 这里设置标题是怕数据没有,返回空表,连标题都没有
     // 这里的权重,没有数据tableData里的高,果如tableData中没有和标题一一对应,导出的表格也会展示
     // 比如:arrHeader = [a,b] 而,tableData = [{a:1,b:2,c:3}];那么表格会多一个c的列
  const arrHeader = [a,b]

  // 创建表格数据
  const tableData = [{a:1,b:2},{a:1,b:2}]

  // 2.创建sheet对象
    const ws = XLSX.utils.json_to_sheet(tableData,
      {
        header: arrHeader
      }
    )
  // 设置每个列宽度,有多少个,就需要添加多少
     ws['!cols'] = [
        {
            wpx: 100
        },
        {
            wpx: 100
         }
     ] 
  
    // 设置表格样式
        for (const i in ws) {
          if (!['!ref', '!merges', '!cols'].includes(i)) {
            ws[i].s = {
              border: {
                top: { style: 'thin' },
                bottom: { style: 'thin' },
                left: { style: 'thin' },
                right: { style: 'thin' }
              },
              font: {
                sz: 9
              },
              // 内容居中
              alignment: {
                horizontal: 'center',
                vertical: 'center',
                wrap_text: true
              }
            }

            // 判断,标题加粗,标题只有1行,大于2则不加粗
            const regex = /\d+/g
            if (!(i.match(regex)[0] > 1)) {
              ws[i].s = {
                border: {
                  top: { style: 'thin' },
                  bottom: { style: 'thin' },
                  left: { style: 'thin' },
                  right: { style: 'thin' }
                },
                // 内容居中
                alignment: {
                  horizontal: 'center',
                  vertical: 'center',
                  wrap_text: true
                },
                font: {
                  sz: 9,
                  bold: true,
                  color: {
                    rgb: '000000' // 十六进制,不带#
                  }
                },
                fill: {
                  fgColor: { rgb: 'ECF5FF' } // 填充颜色
                }
              }
            }
          }
        }
  

  // 3.将 sheet 对象插入工作簿
  XLSX.utils.book_append_sheet(wb, ws, 'sheetName')
  // 设置导出名称
  const {staffName, name} = this.swichtype

  // 4.下载 excel
  XLSX.writeFile(wb, `导出表格.xlsx`)

-
-

标签:xlsx,插件,const,表格,导出,style,ws,thin
From: https://www.cnblogs.com/tlf01/p/18424328

相关文章

  • 视频号直播自动循环发评论-自动回复评论 - 浏览器插件
    功能介绍浏览器插件源码开放,可以随意二次开发,无时间限制,无账号限制,无电脑限制实现原理,纯浏览器插件实现,监控浏览器界面元素变动,获取直播间或者直播中控后台的评论文本,匹配回复关键词或调用AI接口,再利用js模拟输入和点击等操作支持以下中控台或直播间地址,获取评论与回复评论抖......
  • Andorid+Java使用Apache POI库实现doc、docx、xls、xlsx的读取和写入
    1、前言 最近要用AndroidStudio和Java实现多种文件的导入和读取,包括常见的文本文件txt、doc、docx、xls和xlsx。其中txt用输入输出流操作即可。经过搜索查找,确定了使用ApachePOI库进行其余文件类型的读写。在此记录从开始在apache官网上下载导入包后尝试读取doc便报错,到打......
  • WordPress 迁移插件终极指南
    迁移WordPress网站就像收拾房子搬到新房子一样。确保所有内容(内容、主题、插件、媒体文件甚至数据库)完美移动且没有任何损坏的挑战似乎令人畏惧。但就像搬家公司让搬家变得更容易一样,WordPress迁移插件简化了将网站从一台主机移动到另一台主机的复杂过程。无论您是切换主机、从......
  • 视频监控平台AS-V1000的部门管理功能,实现对部门所属的监控视频摄像头资源的添加、删除
    目录一、部门资源二、视频监控资源管理平台介绍1、AS-V1000介绍2、平台服务器配置说明三、部门资源管理功能介绍1、部门资源结构树2、添加和删除部门的资源(1)手动添加(2)删除资源3、查询资源(1)按部门查询(2)按资源查询4、导出部门资源及其结构(1)导出整个部门资源树(2)导......
  • 如何使用帝国CMS进行数据库导出操作?
    使用帝国CMS进行数据库导出操作,可以通过帝国CMS的后台管理系统来完成。以下是详细的步骤:数据库导出步骤登录帝国CMS后台:使用管理员账号登录帝国CMS后台。进入系统管理:在后台管理界面左侧菜单中找到“系统”选项,并点击进入。选择备份与恢复数据:在系统管理菜单中找到“备份与恢......
  • Android插件化(三)基础之Android应用程序资源的编译和打包过程分析
    Android插件化(三)基础之Android应用程序资源的编译和打包过程分析Android资源加载常规思路getResourcesForApplication//首先,通过包名获取该包名的Resources对象Resourcesres=pm.getResourcesForApplication(packageName);//根据约定好的名字,去取资源id;intid=res.......
  • IDEA 换了电脑,如何导入和导出配置?
    前言我们在使用IDEA开发时,经常会设置各种各样的配置,时间一长,就会有很多个性化的东西。用起来也越来越顺手。 不过这里可能会有个问题,那就是哪一天我们要换个电脑了,或者想安装新版本的IDEA时,又得重新配置下来。这复杂度堪比重装系统后的各种安装软件。 那么,我们有没有办法把......
  • AI无人直播插件常用功能的代码分享!
    在当前的AI技术浪潮中,AI无人直播插件已经成为许多商家和内容创作者提升直播效率、降低成本的得力助手。这类插件通过集成先进的AI技术,实现了直播内容的自动化生成、智能互动、数据分析等功能,以下,我将分享五个AI无人直播插件的常用功能及其简化后的代码示例。1、自动内容生成自动内......
  • Nuxt Kit 中的插件:创建与使用
    title:NuxtKit中的插件:创建与使用date:2024/9/19updated:2024/9/19author:cmdragonexcerpt:摘要:本文介绍了在Nuxt3框架中使用NuxtKit创建和管理插件的方法,包括使用addPlugin注册插件、创建插件文件、在Vue组件中使用插件,以及使用addPluginTemplate创建......
  • WordPress中最佳播客插件:入门级指南
    近年来,播客在全球范围内迅速普及,成为人们获取信息和娱乐的重要途径。对于想在WordPress网站上添加播客功能的用户来说,选择合适的插件非常重要。本文将为大家介绍几款适合用户入门级WordPress播客插件,让你轻松实现播客功能。1.PodcastPlayer简介PodcastPlayer是一款简单易用的插......