位置: IT常识 - 正文

vue导出含有多个表的excel,并设置边框、背景色、字体、宽度等(vue实现导出)

编辑:rootadmin
vue导出含有多个表的excel,并设置边框、背景色、字体、宽度等

推荐整理分享vue导出含有多个表的excel,并设置边框、背景色、字体、宽度等(vue实现导出),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue实现导出,vue实现导出功能,vue实现导出功能,vue实现导出功能,vue导出数据到excel,vue实现导出,vue实现导出,vue导出数据到excel,内容如对您有帮助,希望把文章链接给更多的朋友!

前言:之前导出的excel都是一个excel中只有一个表格,在这次开发中,要实现的功能是一个项目中有三个表格,而且单元格还要设置不同的样式,遇到了很多问题,特意记录。

内容大纲如下:

目录

一、选择插件

二、创建工作簿对象

三、设置样式

1. 合并单元格

 2. 设置单元格公共样式

3.单元格设置边框

4.设置列宽

5.在单元格中设置斜线


一、选择插件

最开始,我们要根据是否需要自己设置样式选择好插件:

由于我们导出的是excel文件,所以要使用xlsx插件

npm i xlsx

 其次,要对单元格样式进行更改,所以这次使用的是xlsx-style 插件

npm i xlsx-style

准备就绪,将这两个插件引入到js文件中

import * as XLSX from 'xlsx'import XLSX2 from 'xlsx-style'二、创建工作簿对象

1. 创建一个工作簿对象:(table1和table2是表数据,是[['', '', ''], ['', '', ''], ['', '', '']]的格式)

var wb = XLSX.utils.book_new() // 工作簿对象包含一SheetNames数组,以及一个表对象映射表名称到表对象,XLSX.utils.book_new使用函数创建一个新的工作簿对象 var ws_name = 'SheetJS' // 给工作表命名 var workbook = XLSX.utils.aoa_to_sheet(table1) // 定义工作表,并在里边添加第一个表格 XLSX.utils.sheet_add_aoa(workbook, table2, { origin: 'B1' }) // 向工作表中追加一个表格,并设置从哪个单元格开始 XLSX.utils.book_append_sheet(wb, workbook, ws_name) // 合成工作簿,向工作簿中添加命名为wa_name的工作表

 这时,我们就可以生成基础的工作簿对象。

工作簿中的工作表对象,这个对象中每个不以!开头的属性,都代表一个单元格。

三、设置样式1. 合并单元格

工作表中的 !merges字段存储的是合并的单元格,我们可以自定义要合并的单元格,并把它放进去。

// 定义要合并的单元格var merges = [ 'A20:E21', 'A1:A3', 'B1:R3', 'S1:V3', 'A4:V4', 'A5:E5', 'A13:E13', 'G5:H5', 'G6:G9', 'G10:G13', 'G14:G17', 'G18:G21', 'A6:A7', 'B6:B7', 'C6:D7', 'V6:V7', 'H6:H7', 'I6:I7', 'J6:J7', 'K6:K7', 'L6:L7']// 将要合并的单元格放进工作表中if (merges.length > 0) { if (!workbook['!merges']) workbook['!merges'] = [] merges.forEach(item => { workbook['!merges'].push(XLSX.utils.decode_range(item)) }) } 2. 设置单元格公共样式

单元格的样式都存储在workbook[key].s中,我们可以在设置完公共样式后单独再设置某些单元格的样式。

let borderAll = { // 单元格外侧框线 top: { style: 'thin', color: { rgb: '000000' } }, bottom: { style: 'thin', color: { rgb: '000000' } }, left: { style: 'thin', color: { rgb: '000000' } }, right: { style: 'thin', color: { rgb: '000000' } } }// 设置公共样式if (workbook[key] instanceof Object) { workbook[key].s = { border: borderAll, // 边框样式设置 alignment: { // 文字样式设置 horizontal: 'center', // 字体水平居中 vertical: 'center', // 垂直居中 wrapText: 1 // 自动换行 }, fill: { //背景色 fgColor: { rgb: 'C0C0C0' } }, font: { // 单元格中字体的样式与颜色设置 sz: 10, color: { rgb: '000000' }, bold: false }, bold: true, numFmt: 0 } }3.单元格设置边框

给某个单元格设置边框

if (key === 'A1') { workbook[key].s.border = { top: { style: 'thin', color: { rgb: 'FFFFFF' } }, bottom: { style: 'double', color: { rgb: '3E87C8' } }, left: { style: 'thin', color: { rgb: 'FFFFFF' } }, right: { style: 'thin', color: { rgb: 'FFFFFF' } } } }

边框的样式:

thin

vue导出含有多个表的excel,并设置边框、背景色、字体、宽度等(vue实现导出)

medium

 

thick

dotted

  hair

  dashed

  mediumDashed

dashDot

mediumDashDot

dashDotDot 

mediumDashDotDot

 

slantDashDot

double

 

4.设置列宽

单元格的列宽用的是  !cols  属性,列的顺序是从左向右,从0开始

if (!workbook['!cols']) workbook['!cols'] = [] for (var i = 0; i <= 21; i++) { if (i === 0 || i === 1 || i === 4 || i === 7) { workbook['!cols'][i] = { wpx: 60 } } else if (i === 2 || i === 3) { workbook['!cols'][i] = { wpx: 25 } } else { workbook['!cols'][i] = { wpx: 50 } } }5.在单元格中设置斜线

斜线的方向与斜线的样式必须同时使用,不然没有效果

斜线方向:

diagonalDown:对角线向下方向 diagonalUp: 对角线向上方向

if (key === 'A6') { workbook[key].s.border = { top: { style: 'thin', color: { rgb: '000000' } }, bottom: { style: 'thin', color: { rgb: '000000' } }, left: { style: 'thin', color: { rgb: '000000' } }, right: { style: 'thin', color: { rgb: '000000' } }, diagonalDown: true, // 斜线方向 diagonal: { // 斜线样式 color: { rgb: '000000' }, style: 'thin' } } }
本文链接地址:https://www.jiuchutong.com/zhishi/283659.html 转载请保留说明!

上一篇:电竞显示器怎么选?小编教你如何挑选专业电竞(电竞显示器怎么调整参数)

下一篇:解决Cannot read properties of undefined (reading ‘resetFields‘)(解决中暑最有效方法)

  • 微信营销:微信营销慎重操作,微信营销要注意些什么(微信营销微信广告和朋友圈的看法)

    微信营销:微信营销慎重操作,微信营销要注意些什么(微信营销微信广告和朋友圈的看法)

  • 魅族18x有光学防抖吗(魅族18有光学防抖吗?)

    魅族18x有光学防抖吗(魅族18有光学防抖吗?)

  • 苹果手机怎样取消休眠断网(苹果手机怎样取消密码锁屏)

    苹果手机怎样取消休眠断网(苹果手机怎样取消密码锁屏)

  • 表格背景颜色怎么换成白色(表格背景颜色怎么换)

    表格背景颜色怎么换成白色(表格背景颜色怎么换)

  • 苹果11怎么设置陌生号码拦截(苹果11怎么设置动态壁纸)

    苹果11怎么设置陌生号码拦截(苹果11怎么设置动态壁纸)

  • mate30如何分屏幕(mate30手机分屏怎么弄)

    mate30如何分屏幕(mate30手机分屏怎么弄)

  • 华为荣耀30pro可以无线充电吗(华为荣耀30Pro可以升级内存吗?)

    华为荣耀30pro可以无线充电吗(华为荣耀30Pro可以升级内存吗?)

  • b站复核需要多久(b站复核通过等待审核要多久)

    b站复核需要多久(b站复核通过等待审核要多久)

  • 什么是不换号购机(不换号码的人)

    什么是不换号购机(不换号码的人)

  • 苹果5支持4g网络吗(苹果5能不能用4g网)

    苹果5支持4g网络吗(苹果5能不能用4g网)

  • 手机为啥打开短信会自动退出(手机为啥打开短信收不到)

    手机为啥打开短信会自动退出(手机为啥打开短信收不到)

  • 手机听不见声音显示耳机模式什么原因(为什么打电话手机听不见声音)

    手机听不见声音显示耳机模式什么原因(为什么打电话手机听不见声音)

  • 腾讯视频转码审核要多久(腾讯视频转码中)

    腾讯视频转码审核要多久(腾讯视频转码中)

  • 京东注册频繁要等多久(京东提示注册频繁要多久能注册)

    京东注册频繁要等多久(京东提示注册频繁要多久能注册)

  • qq关联是什么意思(qq关联是什么意思怎么取消)

    qq关联是什么意思(qq关联是什么意思怎么取消)

  • 红米note8Pro大家屏幕贴膜吗(红米note8pro2021)

    红米note8Pro大家屏幕贴膜吗(红米note8pro2021)

  • 苹果手机下载慢是怎么回事(苹果手机下载慢是什么原因)

    苹果手机下载慢是怎么回事(苹果手机下载慢是什么原因)

  • word竖式除号怎么打(word怎么打除法竖式的符号)

    word竖式除号怎么打(word怎么打除法竖式的符号)

  • 抖音标签是什么(抖音标签是什么样子)

    抖音标签是什么(抖音标签是什么样子)

  • 咸鱼扣了12分怎么办(闲鱼被扣了12分)

    咸鱼扣了12分怎么办(闲鱼被扣了12分)

  • 拼多多一般用什么登录(拼多多一般用什么评论的软件)

    拼多多一般用什么登录(拼多多一般用什么评论的软件)

  • 8p有128g内存吗(8p有没有128)

    8p有128g内存吗(8p有没有128)

  • 苹果11是双层主板嘛(苹果11是双层主板发热严重吗)

    苹果11是双层主板嘛(苹果11是双层主板发热严重吗)

  • 荣耀20如何设置熄屏时间(荣耀20如何设置桌面时间)

    荣耀20如何设置熄屏时间(荣耀20如何设置桌面时间)

  • 苹果手机怎么取消qq音乐自动续费(苹果手机怎么取消震动功能)

    苹果手机怎么取消qq音乐自动续费(苹果手机怎么取消震动功能)

  • 内置精装书样式在哪里(内置精装书样式怎么弄)

    内置精装书样式在哪里(内置精装书样式怎么弄)

  • createrepo命令  创建软件仓库及生成元数据(create_proc_entry)

    createrepo命令 创建软件仓库及生成元数据(create_proc_entry)

  • 个人所得税退税是什么意思?
  • 收到增值税发票是不是就给钱了
  • 业务招待费进项税额转出表二
  • 个体工商户可以开发票吗
  • 公司茶水间有什么
  • 过路费认证用去哪里认证
  • 增值税怎样报税
  • 建筑业简易征收差额征税的计算案例
  • 社保年年递增
  • 公司的基建部门是做什么的
  • 利润表中所得税怎么算
  • 企业所得税清算是什么意思
  • 管家婆已过账销售单如何删除
  • 企业名称变更后社保也要变更吗
  • 公司买珠宝会计分录
  • 股利分配是在当期损益吗
  • 建安企业核定征收改查账征收后怎么处理账目
  • 产品打样费计入什么科目
  • 资本公积是什么会计要素
  • 分配水电费包括税费吗
  • 新会计准则职工薪酬解读
  • scrfs.exe - scrfs是什么进程 有什么用
  • 摊余成本计量的金融资产账面价值
  • 查补以前年度所得税如何申报
  • 应纳税所得税计算公式
  • 盈利结转利润
  • abstract php
  • 采购员出差预借差旅费时,应借记
  • iframe嵌套页面点击里面的按钮
  • 销售滞后税务处理
  • 新办公司实收资本怎么查
  • 增值税发票申报单怎么填
  • php 统计
  • php面向对象是什么意思
  • 请假扣款怎么做账
  • 个税手续费会计分录
  • java的注解有哪些
  • 用简易计税办法开发票
  • 公司帮非公司员工缴税
  • 金蝶怎么设置销售出库单模板
  • 会计科目设置怎么操作
  • 资产负债表期末余额是累计数吗
  • mysql优化命令
  • 销货方怎么开红字发票
  • 为支持防疫工作捐款
  • 高新企业奖励金怎么开票
  • 没有抄税会导致什么情况
  • 房屋出租后转租缴纳房产税吗
  • 闲置设备的处理方式
  • 营改增阶段
  • 以前年度生产成本怎么转为研发费用
  • 应付利息核算的会计分录
  • 投资收益的会计科目
  • 上个月结转的流量下个月能用吗
  • 出租不动产如何缴纳增值税
  • 小企业会计准则会计科目表
  • 哪些可以做进项税
  • 建筑企业其他应付款包含什么内容
  • 发票监制章是什么章图片
  • 药品进销差价科目明细
  • 坏账准备转回是什么意思
  • 商品流通企业会计
  • mysql join查询慢
  • service login
  • windows 查看图片
  • jquery常用动画制作
  • 嗌中怎么读
  • shell线程操作命令
  • pythonista可以制作app吗
  • 怎么申请返回
  • python的设置
  • js foreach倒序
  • js中unbind
  • “python”
  • easyui发送ajax请求
  • 国家税务局四川省电子税务局
  • 烟台税务局举报电话号码
  • 河北省发票查询真伪查询国税
  • 湖北中税网控股股份有限公司
  • 小规模纳税人土地使用税减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设