位置: 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‘)(解决中暑最有效方法)

  • 在wps表格中怎么画线条(在wps表格中怎么把数字对齐)

    在wps表格中怎么画线条(在wps表格中怎么把数字对齐)

  • 新换屏幕间歇性失灵(新换屏幕间歇性失灵锁屏后恢复正常)

    新换屏幕间歇性失灵(新换屏幕间歇性失灵锁屏后恢复正常)

  • qq匹配聊天一直出现频繁怎么处理(qq上匹配聊天匹配时老显示匹配失败怎么办)

    qq匹配聊天一直出现频繁怎么处理(qq上匹配聊天匹配时老显示匹配失败怎么办)

  • ipad不能共享屏幕(ipad共享屏幕自己听不到声音)

    ipad不能共享屏幕(ipad共享屏幕自己听不到声音)

  • 苹果的保修是包括哪些(苹果的保修是包括电池吗)

    苹果的保修是包括哪些(苹果的保修是包括电池吗)

  • 微信临时登录一般多久(微信临时登录一天几次)

    微信临时登录一般多久(微信临时登录一天几次)

  • 优酷没办法改昵称(优酷没办法改昵称怎么改)

    优酷没办法改昵称(优酷没办法改昵称怎么改)

  • 怎么取消群待办(怎么取消群待办链接)

    怎么取消群待办(怎么取消群待办链接)

  • qq语音时微信会忙音吗(qq语音时微信语音会显示什么)

    qq语音时微信会忙音吗(qq语音时微信语音会显示什么)

  • 荣耀畅玩5x能用电信卡吗(华为荣耀畅玩5x可以插内存卡吗)

    荣耀畅玩5x能用电信卡吗(华为荣耀畅玩5x可以插内存卡吗)

  • 域名就是网站的网址吗(网站域名是指)

    域名就是网站的网址吗(网站域名是指)

  • 为什么一拍抖音就闪退(为什么一拍抖音手机就发烫)

    为什么一拍抖音就闪退(为什么一拍抖音手机就发烫)

  • 短信为什么有个感叹号(短信为什么有个红色感叹号)

    短信为什么有个感叹号(短信为什么有个红色感叹号)

  • 手机语音报时怎么设置(智能手机语音报时)

    手机语音报时怎么设置(智能手机语音报时)

  • ipad怎么让屏幕常亮(ipad怎么让屏幕触摸没反应)

    ipad怎么让屏幕常亮(ipad怎么让屏幕触摸没反应)

  • 小米手环4怎么监测睡眠(小米手环4怎么自定义表盘)

    小米手环4怎么监测睡眠(小米手环4怎么自定义表盘)

  • 苹果手机的就寝闹钟怎么删除(苹果手机的就寝模式在哪里)

    苹果手机的就寝闹钟怎么删除(苹果手机的就寝模式在哪里)

  • 苹果11支持反向充电吗(苹果支持反向充电的手机有哪些型号)

    苹果11支持反向充电吗(苹果支持反向充电的手机有哪些型号)

  • 清晰度5mp是什么意思(清晰度5mp高还是2k高)

    清晰度5mp是什么意思(清晰度5mp高还是2k高)

  • 苹果xr文件管理器在哪(苹果xr文件夹)

    苹果xr文件管理器在哪(苹果xr文件夹)

  • 投影仪伤害眼睛吗(投影仪伤害眼睛怎么办)

    投影仪伤害眼睛吗(投影仪伤害眼睛怎么办)

  • 微信投诉举报的后果是什么(微信投诉举报对方会受到什么惩罚)

    微信投诉举报的后果是什么(微信投诉举报对方会受到什么惩罚)

  • word不显示网格线怎么设置(word文档中没有网格框线在哪儿添加)

    word不显示网格线怎么设置(word文档中没有网格框线在哪儿添加)

  • 打qq电话怎么同时录音(qq通话怎么样)

    打qq电话怎么同时录音(qq通话怎么样)

  • 血脂高怎么办(甘油三血脂高怎么办)

    血脂高怎么办(甘油三血脂高怎么办)

  • DEFORMABLE DETR详解(deformable detr代码)

    DEFORMABLE DETR详解(deformable detr代码)

  • 房地产开发公司组织架构
  • 用现金支付的没有发票怎么办
  • 现金流量表现金流量项目明细分类
  • 员工买东西自己垫付的钱怎么做账
  • 怎么理解财务会计与管理会计
  • 税控服务费属于什么费用
  • 企业前期开办费没有发票怎么入账
  • 房产证印花税如何计算
  • 企业助学捐款分录怎么写
  • 企业所得税扣除项目及标准
  • 外出采购材料分录
  • 计提工资和实际发放工资
  • 出口退税换汇率多少是正常
  • 外汇扣税是多少钱啊
  • 工商营业年报怎么做
  • 工资薪金总额包括哪些内容
  • 股东转入实收资本
  • 广播影视服务需要交文化事业建设费吗
  • 在Win7系统中,文件的属性包括
  • 存货跌价准备是谁的备抵账户
  • linux和windows关系
  • php 签名算法
  • 异地工程预缴增值税怎么计算
  • 计算土地增值税时增值额的扣除项目包括
  • php数组函数,选班长
  • 人工单位怎么写
  • 公司暂估成本是什么意思
  • 资金运动包括哪几个方面
  • igfxhk.exe是什么进程
  • gwsloader.exe是什么意思
  • excel多表操作法
  • 接口500错误原因
  • php怎么发布
  • 织梦怎么添加相关
  • 转正差额怎么算
  • 银行存款手工明细分类账
  • 银行手续费发票未到怎样做账
  • 匿问我答查人
  • phpcms采集教程
  • 国家定额发票使用范围
  • 深入浅出embedding pdf
  • 什么是金税四期什么时候上线
  • 一般纳税人增值税怎么算
  • 工会经费是按应付职工薪酬贷方计提吗
  • 递延所得税资产和负债账务处理
  • 咨询费收入怎么入账
  • 公司注销实收资本要清零吗?
  • 去年的车辆保险今年才开怎么做分录
  • 归还银行贷款利息计入
  • 对公收到几毛测试费怎么做账
  • 简易计税项目可以抵扣进项税吗?
  • 出纳的现金日记账表格怎么做
  • 开设专栏方案
  • mysql获取当前日期时间函数
  • 让你的时间更有价值
  • 系统问题怎么处理
  • surface 优惠
  • mac系统不能升级怎么办
  • sointgr.exe - sointgr是什么进程 有什么用
  • win7系统点击桌面图标没反应
  • 电脑xp桌面
  • win10小娜无法启动语音识别
  • win10预览版好吗
  • win10预览版桌面图标和任务栏不翼而飞怎么办?
  • perl正则表达式
  • nodejs读取文件夹下的所有文件
  • js基础教程
  • unable to instantiate decoder
  • jQuery插件封装时如要实现链式编程,需要
  • 基础的十进制按什么来算
  • 卷烟批发环节的消费税一箱150元
  • 河南灵活就业缴费截止时间
  • 已经开具的电子专票怎么重新下载
  • 纳税申报的期限是多久
  • 转让专利权取得的所得属于财产转让所得吗
  • 深圳2021纳税
  • 生产企业出口退税申报流程操作
  • 通州税务短信
  • 新加坡国税局的电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设