700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 封装vue导出excel组件(扩展嵌入图片 操作工作表 表格样式等功能)

封装vue导出excel组件(扩展嵌入图片 操作工作表 表格样式等功能)

时间:2021-02-14 12:46:44

相关推荐

封装vue导出excel组件(扩展嵌入图片 操作工作表 表格样式等功能)

导出的excel中嵌入图片,同时还需要操作多个工作表与表格样式,看了一些java的插件不太适合,因为我这边的需求是动态表单,字段不固定。后端的插件大部分依赖实体类注解,要不就是操作比较繁琐。又看了一些Vue导出excel的插件。大部分功能不全,不满足手里的需求。

无意中发现了Excel.js这个工具功能还是比较全,我在他的基础上做了二次封装。方便了数据的传入、格式的设置。其实还有很多功能是可以扩展的,后期再完善吧。

目前已实现功能:1、可以增加工作表2、可以指定图片列,并嵌入图片3、指定头部样式

1、先下载依赖:cnpm install exceljs file-saver -S;

2、使用说明:

## 自定义封装的Excel导出,支持增加工作表、嵌入图片 =======@杨华--_01_10==========## 基于exceljs二次封装,支持exceljs的所有接口## cnpm install exceljs file-saver -S;<!-- 格式要求 --># 标题行let column = [{title: '维修内容', key: '维修内容',type: 'text'},{title: '维修图',key: '维修图',type: 'image',width: 200,height: 250}]# 内容格式--ps:键需与标题行的key一致let data = [{'维修内容': '维修EPS','维修图': 'http://url/name.jpg',}]# 使用教程1、import {createWorkBook,exportStatics,downloadWorkBook} from "@/utils/Excel/excel.js";2、# 创建工作簿let workbook = createWorkBook();//初始化基本属性# 创建工作表,可多次创建let worksheet = workbook.addWorksheet('自定义工作表名');workbook = await exportStatics(workbook,worksheet,column,data); # 下载ExceldownloadWorkBook(workbook,'自定义文件名');

3、封装代码如下:

import Excel from "exceljs";import * as FileSaver from "file-saver";//用于客户端读写数据// 传入工作簿、工作表、表头、数据。export function exportStatics(workbook,worksheet,heard,tableData) {// 一、创建工作簿// let workbook = new Excel.Workbook();// setWorkbook(workbook);//初始化基本属性// 二、创建工作表// let worksheet = workbook.addWorksheet("sheet1");// 表头===================================================================================handleTitle(worksheet,heard);// 插入表格内容数据================================================================================handleContent(worksheet,heard,tableData);// 处理图片==================================================================================await handleImage(workbook,worksheet,heard,tableData);return workbook;};// 处理表头===========================function handleTitle(worksheet,heard){// const listHearder = Object.keys(heard);// 按行的格式插入表头worksheet.insertRow(1,// 行的位置heard.map(item =>{ return item.title; })//表头组成的数组);// =====设置样式=====//设置标题行的填充颜色,此处可扩展worksheet.getRow(1).fill = {type: 'pattern',pattern:'darkTrellis',fgColor:{argb:'EDEDED'},bgColor:{argb:'EDEDED'}};//设置行居中 worksheet.getRow(1).height =25;//设置行高度---下标从1开始;worksheet.getRow(1).alignment = { vertical: 'middle', horizontal: 'center' }; }// 处理数据内容=======================function handleContent(worksheet,heard,tableData){tableData.forEach((item, index) => {worksheet.insertRow(index + 2,//从第二行开始插入heard.map((ite) => {if(ite.type && ite.type != 'image'){return item[ite.key]}else{return "";}}));});}// 处理图片async function handleImage(workbook,worksheet,heard,tableData){let width = 200,height = 250;// 首先拿到格式为图片的列let column = heard.filter((item,index)=>{return item.type == 'image'})if(column!=null && column.length>0){let ImageTitle = {};//存放type为image的标题行column.forEach(element => {ImageTitle[element.title] = element;});for(let index = 0,len=tableData.length; index < len; index++) {// index代表行,column代表列let item = tableData[index];let column = 0for(let key in item){if(ImageTitle[key]){width = ImageTitle[key].width?ImageTitle[key].width:width;height = ImageTitle[key].height?ImageTitle[key].height:height;if(item[key]){let mbase64 = await imgUrlToBase64(item[key]);//将图片转为base64格式if(mbase64){const imageId1 = workbook.addImage({base64: mbase64,extension: "png",// 图片扩展名,支持“jpeg”,“png”,“gif”});worksheet.addImage(imageId1, {tl: { col: column, row: index+1 },//这个下标是从0开始ext: { width: width, height: height },//图片的宽与高hyperlinks: {hyperlink: item[key],tooltip: item[key]}});worksheet.getColumn(column+1).width = width/8;//设置列宽度---这个下标是从1开始;worksheet.getRow(index+2).height = height/1.25;//设置行高度---下标从1开始;}}}worksheet.getRow(index+2).alignment = { vertical: 'middle', horizontal: 'center' };//设置行居中column++;}}}debugger}// 将图片转为base64格式-------function imgUrlToBase64(url) {// 加载失败默认显示let fail = 'data:image/png;base64,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hxB0Vd+tt95qHn300dTKPOqoo8zOO+9curIffPBBM3PmzMz7tcSlCULtN6hi8+fPNzfccIMzCXkJSuA0JGhXk3BExSJJOKyIWG9P/cxyCPvIRz5iTjrppHYtckvyhRB0YdfXU1/RNDvooIPMHnvsUaqSXn75ZXP99dc3vohZdvDBB5tBgwaVeoa9SV9bDXPyzHccdthhZtddd630vHa82SWE6tlJALH/EEAIuljI0UYON2mm5SYtO5Wxm2++2Tz55JOZt3784x83n/nMZ8okv9o9riGOvViTgwcccEDl57VjAo8//rj505/+lJo19ezUw8MQgjXagCbVNLmWZrvvvrs55JBDCrcdeSvKazHLNHmlybotttiicPrRGzT00BDEZc3aw+B6bl2///vf/27uvPNO73VZV/5b8Rx6BF3UXV8RzeJrNr+IyVNRQwLXGn6V3obNz7x588ztt9/uzN7mm29uhg8f3nC57VS75557MpdotcV76NChnVr8UuVCCLqwaTZfs/ppttVWW5njjjuuEOTbbrvNPPLII5n3yHPwc5/7XOV9/r/+9a/Nq6++mvks+TBoN2M7Tw4WApxy8R133GEefvjh1KSqzPf4yF87poEQdNXKiy++aK699trUOtKXdOTIkbnr8LHHHjPTpk3LvH6ttdZqvJjbbbdd7nSTLnzttdfMxIkTnWloWVLLk51urjmZqitAncgPIeiqVXXjtfEozYrsBHz77bfNb3/7W+fMva8JO9f8hsrkY/gRygug4djChQtTs6v5GDlRYf8hgBB0sdDS3mWXXZbaNuRR+PWvfz1X29FElSasskxr2eoN9OnTJ1eaWRdpefLqq692pnPooYea3XbbzXld6BdMmjSpEVwmzb7whS9UnpgNnVE8/whBhMhPf/rTzPrN45+uoB8K/uEy391TORBp/TzLfA1FXGVr9e9dEZjkVSjvQoweQWIbUI8gy+nnG9/4hjP2Xp4JQjnxyJnHp7lWPeyztFqgnkj//v19Pr6t0vr5z39utB8izb761a8SKToGhx5BBIhrB+Lo0aPNhz/84cxGr7mB559/3vliyJlHcwQ+bfbs2WbGjBnOJDXxecwxx3gZljgf1oILXD27c845x6h3hNEjSGwDWjXQ6kGafelLXzL9+vXLbD95egQ2gV122cUcfvjhXttjXqciTZZJDNJ2SnrNVCwx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'return new Promise((resolve, reject) => {if (!url) {reject('请传入url内容')}if (/\.(png|jpe?g|gif|svg)(\?.*)?$/.test(url)) {// 图片地址const image = new Image()// 设置跨域问题image.setAttribute('crossOrigin', 'anonymous')// 图片地址image.src = urltry{image.onload = () => {const canvas = document.createElement('canvas')const ctx = canvas.getContext('2d')canvas.width = image.widthcanvas.height = image.heightctx.drawImage(image, 0, 0, image.width, image.height)// 获取图片后缀const ext = url.substring(url.lastIndexOf('.') + 1).toLowerCase()// 转base64const dataUrl = canvas.toDataURL(`image/${ext}`)resolve(dataUrl || '')}image.onerror = () =>{resolve(fail);}}catch(e){resolve(fail);}} else {// 非图片地址reject(fail);}})};//导出表格下载方法=================================================================================export function downloadWorkBook(workbook,name){name = name?name:'download';const EXCEL_TYPE ="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8";workbook.xlsx.writeBuffer().then((data) => {const blob = new Blob([data], { type: EXCEL_TYPE });console.log(blob.stream(), 6664744)FileSaver.saveAs(blob, name+".xlsx");});}//创建workBook实例export function createWorkBook(){let workbook = new Excel.Workbook()setWorkbook(workbook);return workbook;}// 设置工作簿的基本属性export function setWorkbook(workbook){// 设置工作簿的属性workbook.creator = "Me";workbook.lastModifiedBy = "Her";workbook.created = new Date(1985, 8, 30);workbook.modified = new Date();workbook.lastPrinted = new Date();// 工作簿视图,工作簿视图控制在查看工作簿时 Excel 将打开多少个单独的窗口workbook.views = [{x: 0,y: 0,width: 1000,height: 2000,firstSheet: 0,activeTab: 0,visibility: "visible",horizontalCentered:true},];}

3、导出效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。