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

  • 网络推广的方法之百度知道问答篇(网络推广的方法和途径)

    网络推广的方法之百度知道问答篇(网络推广的方法和途径)

  • 抖音有电视版吗(抖音有电视机版吗)

    抖音有电视版吗(抖音有电视机版吗)

  • mate20x和mate20pro的区别

    mate20x和mate20pro的区别

  • 为什么xr没有3dtouch

    为什么xr没有3dtouch

  • 手机小v怎么打开(小v怎么打出来)

    手机小v怎么打开(小v怎么打出来)

  • qq铃声指定好友怎么取消(qq铃声指定好友怎么取消不了)

    qq铃声指定好友怎么取消(qq铃声指定好友怎么取消不了)

  • 淘宝限制登录怎么把支付宝解绑(淘宝限制登录怎样向官方申请解除限制)

    淘宝限制登录怎么把支付宝解绑(淘宝限制登录怎样向官方申请解除限制)

  • 显示器和显卡有关系吗(显卡和显示器之间的关系)

    显示器和显卡有关系吗(显卡和显示器之间的关系)

  • 电脑摄像头为什么是绿色的(电脑摄像头为什么打不开)

    电脑摄像头为什么是绿色的(电脑摄像头为什么打不开)

  • 为什么淘宝给了差评找不到自己的评价了(为什么淘宝会送东西给我)

    为什么淘宝给了差评找不到自己的评价了(为什么淘宝会送东西给我)

  • 抖音显示关注太快休息一下怎么回事(抖音怎么刷关注)

    抖音显示关注太快休息一下怎么回事(抖音怎么刷关注)

  • 小米手机屏锁忘记密码(小米手机屏幕锁忘了)

    小米手机屏锁忘记密码(小米手机屏幕锁忘了)

  • 蓝牙耳机左右声道反了怎么办(蓝牙耳机左右声音不一样大)

    蓝牙耳机左右声道反了怎么办(蓝牙耳机左右声音不一样大)

  • 拉黑后听对方歌对方知道吗(拉黑了还能听到对方彩铃吗)

    拉黑后听对方歌对方知道吗(拉黑了还能听到对方彩铃吗)

  • qq群语音聊天限制人数吗(qq群语音通话上限多少人)

    qq群语音聊天限制人数吗(qq群语音通话上限多少人)

  • ipad可以用别的耳机吗(ipad可以用别的蓝牙耳机吗)

    ipad可以用别的耳机吗(ipad可以用别的蓝牙耳机吗)

  • oppo闪充是头还是线(oppo 闪充是数据线还是插头)

    oppo闪充是头还是线(oppo 闪充是数据线还是插头)

  • dp接口和hdmi区别(显示器的dp接口和hdmi区别)

    dp接口和hdmi区别(显示器的dp接口和hdmi区别)

  • 华为移动服务是干啥的(华为移动服务是什么东西)

    华为移动服务是干啥的(华为移动服务是什么东西)

  • 货拉拉下单后怎么取消(货拉拉从哪下单)

    货拉拉下单后怎么取消(货拉拉从哪下单)

  • 为什么在win10系统中无法创建文件夹呢?(为什么win10系统更新不了)

    为什么在win10系统中无法创建文件夹呢?(为什么win10系统更新不了)

  • 做胃镜多少钱及无痛胃镜多少钱(做胃镜多少钱了)

    做胃镜多少钱及无痛胃镜多少钱(做胃镜多少钱了)

  • 图像的傅里叶变换(图像的傅里叶变换和离散余弦变换实验报告)

    图像的傅里叶变换(图像的傅里叶变换和离散余弦变换实验报告)

  • 建筑行业有哪种职业
  • 购销合同印花税按70%
  • 成本费用的关系
  • 收到赠送的商品并销售
  • 去税务局申报需要带营业执照吗
  • 事业单位无形资产管理制度
  • 固定资产评估增值的账务处理
  • 企业微信收款如何同步给别人
  • 哪些人可以享受4050社保补贴
  • 沙特将开征增值税和特殊商品消费税
  • 销售商品货款已预收
  • 转让地下建筑物交土地增值税吗
  • 企业可以用当月的进项票抵扣上月的销项吗?
  • 来料加工进料加工是免税的吗?
  • 法人变更后的涉税问题
  • 会计当年是指哪一年
  • 免税店汇率是什么意思
  • 利润分成的会计分录
  • 老板垫付的货款怎么做凭证?
  • 退留抵税额会计分录
  • world超链接
  • 企业之间的往来款现金流
  • php apc
  • 使用PHP similar text计算两个字符串相似度
  • phpcookie
  • php的in_array
  • 用支票购入厂部办公用品2000元,车间办公用品1000元
  • 增值税如何在报表里填写
  • 企业发生的直接用于产品生产,专门设有成本项目的费用
  • laravel视频教程
  • SSD目标检测算法
  • javascript学什么内容
  • 投资性房地产抵债差额计入
  • ntpq命令详解
  • 取得抵债资产支付的税费一般不包括下列哪种
  • 一般纳税人开发票给小规模纳税人
  • 分公司以总公司名义
  • 文化传媒公司介绍
  • 法人不发工资可以吗
  • 社会团体要求
  • 购买金税盘是全额抵扣吗
  • 固定资产清理的账务处理
  • 燃气费计入什么科目
  • 开票软件里税收分类编码在哪更新
  • sqlserver2016维护计划
  • mysql提取数据语句
  • 其他综合收益的税后净额怎么计算
  • 银行存款出现负数怎么办
  • 个人所得税的征收模式为()A
  • 应付职工薪酬的含义
  • 按信用风险特征组合
  • 季度所得税计提分录
  • 关于职工薪酬的确认和计量下列说法中不正确的是
  • 营业外收入记入企业的什么
  • 4s店销售返利
  • 坏账准备的核算方法
  • 企业职工薪酬如何确定
  • 发票税率如何填写
  • 小规模纳税人买车可以抵扣哪些税
  • 存货跌价准备怎么结转成本
  • win8磁盘占用率高怎么处理
  • freebsd 编译
  • u启动怎么装机
  • u盘装win8系统教程图解
  • linux的tar
  • linux shell !
  • win8如何修改文件权限
  • linux如何直接访问gpio不用设备树
  • Unity3d_用PlayerPrefs保存和读取数组
  • 压缩的linux命令
  • linux如何创建守护进程
  • android性能指标
  • 简述linux与windows相比,有哪些优势
  • javascript高级程序设计第三版
  • java教程
  • js赋值input
  • 代扣社保代扣公式是什么
  • 上海国家税务局官网发票查验平台
  • 小微企业怎么报增值税
  • 湖南 资源税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设