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

  • hi nova9支持无线充电吗(nova9pro支持无线充电)

    hi nova9支持无线充电吗(nova9pro支持无线充电)

  • 手机蓝牙怎么用(手机蓝牙怎么用 小米)

    手机蓝牙怎么用(手机蓝牙怎么用 小米)

  • 电脑符号怎么转换(电脑符号怎么转换格式)

    电脑符号怎么转换(电脑符号怎么转换格式)

  • 对方关机了怎么查位置(对方关机了怎么联系他)

    对方关机了怎么查位置(对方关机了怎么联系他)

  • 为什么人脸识别不能通过(为什么人脸识别不了)

    为什么人脸识别不能通过(为什么人脸识别不了)

  • 苹果7发热降频掉帧高招解决(苹果发热降频屏幕变暗)

    苹果7发热降频掉帧高招解决(苹果发热降频屏幕变暗)

  • 双层pdf和单层pdf区别(双层PDF和单层PDF的大小)

    双层pdf和单层pdf区别(双层PDF和单层PDF的大小)

  • 闲鱼鱼塘怎么突破500人(闲鱼渔塘)

    闲鱼鱼塘怎么突破500人(闲鱼渔塘)

  • 抖音点的赞怎么没有了(抖音点的赞怎么换钱)

    抖音点的赞怎么没有了(抖音点的赞怎么换钱)

  • 抖音右下角怎么有好友头像(抖音右下角怎么有好友头像怎么关掉)

    抖音右下角怎么有好友头像(抖音右下角怎么有好友头像怎么关掉)

  • 抖音注销是七天内不要登录吗(抖音注销是七天内能撤回吗)

    抖音注销是七天内不要登录吗(抖音注销是七天内能撤回吗)

  • ipad屏幕坏了如何导出照片(ipad屏幕坏了如何删除里面的数据)

    ipad屏幕坏了如何导出照片(ipad屏幕坏了如何删除里面的数据)

  • 您拨的手机号码未开通联通服务功能(您拨的手机号码未注册联通用话提醒功能)

    您拨的手机号码未开通联通服务功能(您拨的手机号码未注册联通用话提醒功能)

  • 手机缓存的视频能导入电脑看嘛(手机缓存的视频在哪里找)

    手机缓存的视频能导入电脑看嘛(手机缓存的视频在哪里找)

  • 华为mate x何时上市

    华为mate x何时上市

  • 华为gt和gt2区别(华为gt和gt2有啥区别)

    华为gt和gt2区别(华为gt和gt2有啥区别)

  • 华为mate30有什么功能(华为mate30有什么缺点)

    华为mate30有什么功能(华为mate30有什么缺点)

  • vivov1730dt是什么型号(vivo手机型号v1938ct)

    vivov1730dt是什么型号(vivo手机型号v1938ct)

  • 如何更改qq所有字体(如何更改qq所有头像)

    如何更改qq所有字体(如何更改qq所有头像)

  • uc浏览器私密空间怎么找(uc浏览器私密空间在哪里)

    uc浏览器私密空间怎么找(uc浏览器私密空间在哪里)

  • 转账后拉黑能收钱吗(转账拉黑还能收吗)

    转账后拉黑能收钱吗(转账拉黑还能收吗)

  • 如何通过手机号定位他人位置(如何通过手机号查机主的名字)

    如何通过手机号定位他人位置(如何通过手机号查机主的名字)

  • 锤子手机投屏怎么设置(锤子手机怎么投屏投影仪)

    锤子手机投屏怎么设置(锤子手机怎么投屏投影仪)

  • JS数组对象——根据日期进行排序Date.parse(),按照时间进行升序或降序排序localeCompare()(js数组entries)

    JS数组对象——根据日期进行排序Date.parse(),按照时间进行升序或降序排序localeCompare()(js数组entries)

  • 税种有哪几种
  • 什么是企业税务登记号
  • 增值税应纳税额是什么意思
  • 印花税是什么时候交的钱
  • 完税证明可以重复打印吗
  • 合同金额与结算金额一致,如何约定
  • 嵌入式软件运行的主要流程是什么
  • 库存产品亏本销售账务处理
  • 会员卡 退
  • 销售包装物的会计处理
  • 汇算清缴残保金填哪里
  • 进口关税专用缴款书在哪里打印
  • 劳务公司民工工资可以抵进项吗
  • 房屋租赁发票是什么意思
  • 年末要计提所得税分录
  • 处置资产发生的清理费计入
  • 增值税普票只要发票号吗
  • 营业账簿印花税包括什么
  • 小规模不动产租赁税率是否减按1%
  • 变更财务负责人在网上变更流程
  • 免抵税额和免抵退税额有什么区别
  • 快递公司怎么结算
  • 在会计上跨季度增值税专用发票怎么进行红冲?
  • 定金转为货款如何表述
  • 成交转化率的计算公式电脑
  • 一般纳税人所得税2023年税率
  • 无法手动设置时区
  • 收到负数发票怎么办
  • 品牌转让怎么写
  • mac设置邮件
  • 发票失控进项转出所得税
  • un system
  • 管理费用属于产品成本项目的费用吗
  • 融资租入固定资产是什么意思
  • 企业上交财政款分录
  • 股权投资差额怎么算
  • 银行询证函费用减免
  • php数组分为哪两种
  • html表白代码动态
  • tf fans club
  • 2022年 change detection遥感图像变化检测 论文附代码
  • 网络安全文章1000字
  • phpcms教程
  • 存放在仓库中的柴油属于什么会计要素
  • 配送中心适合哪种类型的企业
  • 织梦专题页模板
  • 电子发票报销需要签字吗
  • 购入固定资产入账成本
  • 劳务外包收入如何纳税
  • 工地会计内账
  • 企业拆迁补偿款
  • 收到季度房租需要分摊吗
  • 非营利组织如何盈利
  • 发票税额不全能抵扣吗
  • 用友财务软件的核心模块是什么
  • 政府补贴是否交增值税
  • 暂估入库一直没有发票
  • 塑料行业税负率是多少
  • 产品销售成本计算表
  • 行转列sql函数
  • mac设置多个桌面
  • kms激活的弊端
  • xp系统怎么设置系统启动项
  • linux查inode
  • ubuntu怎么建立文件
  • ibm svc是什么意思
  • WIN10系统中WPS字体颜色浅
  • 用linux做服务器
  • linux给文件赋全部权限
  • 不使用jsp
  • 在一个批处理系统中
  • 在vue中添加按钮使内容消失
  • 通过制作日晷我们可以探索发现一天之中
  • a+bpython
  • ActivityManagerService (三)
  • wxpython怎么用
  • python批量填表
  • js实现文字闪烁的方法
  • 涉农项目有哪些项目
  • 河北手工发票查验平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设