位置: IT常识 - 正文

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

发布时间:2024-01-03
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‘)(解决中暑最有效方法)

  • 麒麟820和天玑900哪个处理器好(麒麟820和天玑900处理器哪个好)

    麒麟820和天玑900哪个处理器好(麒麟820和天玑900处理器哪个好)

  • 怎么查看ip地址是否冲突(怎么查看ip地址)(怎么查看ip地址位置)

    怎么查看ip地址是否冲突(怎么查看ip地址)(怎么查看ip地址位置)

  • 开通多多支付要扣费吗(多多支付千万别开)

    开通多多支付要扣费吗(多多支付千万别开)

  • 高德地图可以微信支付吗(高德地图可以微信零钱支付吗)

    高德地图可以微信支付吗(高德地图可以微信零钱支付吗)

  • 荣耀play可以升级鸿蒙系统吗(荣耀play可以升级鸿蒙系统3.0吗)

    荣耀play可以升级鸿蒙系统吗(荣耀play可以升级鸿蒙系统3.0吗)

  • 红米k30pro是双扬声器还是单扬声器(红米k30pro双扬声器怎么开)

    红米k30pro是双扬声器还是单扬声器(红米k30pro双扬声器怎么开)

  • opporeno4pro电池是多大(opporeno4pro手机电池)

    opporeno4pro电池是多大(opporeno4pro手机电池)

  • 新浪微博怎么注销账号(新浪微博怎么注销不了)

    新浪微博怎么注销账号(新浪微博怎么注销不了)

  • iphone怎么滚动截长图微信聊天记录(iphone怎么滚动截聊天长图)

    iphone怎么滚动截长图微信聊天记录(iphone怎么滚动截聊天长图)

  • 平板a2197是什么型号(平板a2199是什么)

    平板a2197是什么型号(平板a2199是什么)

  • 华为快捷键怎么调出来(华为快捷键怎么关屏)

    华为快捷键怎么调出来(华为快捷键怎么关屏)

  • 打印机是谁发明的(打印机是谁发明出来的)

    打印机是谁发明的(打印机是谁发明出来的)

  • 停电了网线还能用吗(停电的话网线还能用吗)

    停电了网线还能用吗(停电的话网线还能用吗)

  • opporeno3微信视频有美颜吗(opporeno3微信视频美颜没有小圆圈)

    opporeno3微信视频有美颜吗(opporeno3微信视频美颜没有小圆圈)

  • 华为平板翻新机鉴别(华为平板翻新机能查出来吗)

    华为平板翻新机鉴别(华为平板翻新机能查出来吗)

  • 为什么更新apple id不是登录的那个(为什么更新apple id总是失败)

    为什么更新apple id不是登录的那个(为什么更新apple id总是失败)

  • 分页符在哪(分页符在哪里找)

    分页符在哪(分页符在哪里找)

  • 京东过年期间配送吗(京东 过年)

    京东过年期间配送吗(京东 过年)

  • 小米手机设置APN快速4G上网方法(苹果手机apn设置在哪里)

    小米手机设置APN快速4G上网方法(苹果手机apn设置在哪里)

  • z97主板最高配什么cpu(z97最好主板)

    z97主板最高配什么cpu(z97最好主板)

  • xs max长宽多少(xs max长宽多少厘米)

    xs max长宽多少(xs max长宽多少厘米)

  • 驱动人生网卡版怎么用(驱动人生网卡版安装包)

    驱动人生网卡版怎么用(驱动人生网卡版安装包)

  • chatgpt 的真正用法,你真的会用吗(chatto)

    chatgpt 的真正用法,你真的会用吗(chatto)

  • getsebool命令  查询SElinux策略内各项规则的布尔值(怎样利用 getnext 命令检索未知对象?)

    getsebool命令 查询SElinux策略内各项规则的布尔值(怎样利用 getnext 命令检索未知对象?)

  • java动态代理的特点(java动态代理的实现方式)

    java动态代理的特点(java动态代理的实现方式)

  • 停车费手撕票如何填写申报表
  • 应交税费转结哪里去
  • 收取承包费如何交税
  • 政府返还土地款的会计处理
  • 个体户无票收入对公司有影响吗
  • 营业总收入包含投资收益吗
  • 工会账怎么做
  • 其它综合收益影响因素
  • 工资表领导签字怎么签
  • 个人所得税可以退几年前的?
  • 上市公司回购优先股
  • 公司采购报销没发票
  • 企业间资金往来 人员派驻
  • 工程预付款包括工人工资吗
  • 投资项目的资本金的认缴
  • 年末有留抵税额怎么做税费对冲
  • 企业年金的个人账户怎么查
  • 银行贷款利息可以减免吗
  • 计提城建税计入什么科目
  • 电子发票可以打多少行
  • 水费适用税率
  • 企业固定资产损失包括
  • 有限合伙企业需要承担无限连带责任吗
  • 其他综合收益的编码
  • 政府补助的会计核算
  • 进项税额转出会计处理
  • 苹果电脑mac设备在哪里
  • 表格关闭函数
  • linux的命令行指的是什么
  • 查补以前年度收入怎么做会计分录
  • 贸易公司出口退税政策最新
  • 超市收取进场费会计分录
  • 计算机视觉就业前景
  • thinkphp 5.0.24 rce
  • 一个完整的php文件有哪些元素组成
  • 基金公司做销售有前途吗
  • html制作网页教程
  • es6面试题promise
  • 防伪税控系统该如何操作
  • 个体工商户季报还是月报
  • 金税盘税局端系统响应错误怎么解决
  • python3矩阵求逆
  • 帝国cms怎么调用文章随机段落
  • 瓶盖再来一次表情包
  • 企业所得税预缴少缴纳了,需要交滞纳金吗?
  • 增值税税目明细
  • 背书转让流程图
  • 会计的借记和贷记什么意思
  • 电脑bak文件怎么打开
  • 未分配利润转增股本 企业所得税
  • 受托加工的成本
  • 股权转让低于净资产的税怎么算
  • 企业购买理财产品收益要交税吗
  • 法院拍卖土地原欠税怎么办
  • 银行收到货款会计分录怎么做
  • 停车发票怎么盖章
  • 预付账款没有发票吗
  • 未分配利润期初余额怎么录入
  • 哪些情形不需要办理变更登记
  • 二次加工型的企业有哪些
  • 私企公转私出纳有责任吗
  • sql数据采集
  • 重装win7系统后鼠标反应慢
  • linux的进程管理命令
  • win10系统怎么回滚
  • win7电脑显示器颜色不正常怎么办
  • win7宽带连接错误813怎么解决办法
  • cocos2dx 地图
  • opengl用法
  • 浅谈JavaScript事件的属性列表
  • javascript基础笔记
  • jquery和dom对象之间怎么转换
  • js垂直对齐
  • java script
  • 消费税增值税的区别与联系
  • 国家税务总局验证码
  • 厦门市地方税务局市稽查局关于规范稽查有关规定
  • 八戒财税兼职
  • 公共基础设施项目所得税优惠目录
  • 地税局多措并举工作总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号