当前位置: 首页 > news >正文

纯前端使用ExcelJS插件导出Excel

需求背景:antd表格table纯前端页面导出表格数据

官网地址: https://github.com/exceljs/exceljs

介绍ExcelJS及其应用场景

简要说明ExcelJS的功能和在前端开发中的常见用途,如动态生成报表、导出数据等。

环境配置与安装

列出所需的依赖项,包括ExcelJS库的安装方式(npm或CDN引入)。
示例命令:

npm install exceljs

基本导出流程

创建一个新的工作簿(Workbook),添加工作表(Worksheet),填充数据并导出为Excel文件。
示例代码:

const ExcelJS = require('exceljs');
//创建工作簿和工作表
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet1');//创建工作表的表头
//getColunm().value是表格表头数据: [{width:50,title:'序号'}, {width:50,title:'姓名'}]
const columnsData = getColunm().value.map((column, index) =>{
const width = column.width;
return {header: column.title,width: isNaN(width) ? 20: width/ 10,
}
worksheet.columns = columnsData;

高级功能:样式与格式

介绍如何设置单元格样式(字体、颜色、边框、对齐方式等)。
示例代码:

//设置样式(文本垂直横向居中)
const headerRow = Worksheet.getRow(1);
headerRow._cells.forEach((cell) => {worksheet.getCell(cell._address).font = {family: 4,size: 10,bold:true,}
worksheet.getCell(cell._address).alignment = {vertical: 'middle', horizontal: 'center'};
})//官网文档单个单元格设置样式
worksheet.getCell('A1').font = { bold: true, color: { argb: 'FF0000' } };
worksheet.getCell('A1').alignment = { vertical: 'middle', horizontal: 'center' };

最重要的:插入填充数据

//填充数据
//resData.value是后端返回的数据
resData.value.forEach(v, i) =>[//前俩列是固定的,从第三列开始const keyvalue = ref([]);for (const key in v) {keyValue.value.push(v[key]);}//循环拿到数组对象插入数据worksheet.addRow(keyValue.value);
};//获取每列数据,依次垂直居中对齐
worksheet.columns.forEach((column) =>{column.alignment = {vertical: 'middle',horizontal: 'center'};
};//addRow插入,先插入第一行表头name和age,再次就是插入数据
worksheet.addRow(['Name', 'Age']);
worksheet.addRow(['Alice', 25]);

浏览器端导出与兼容性

介绍如何在浏览器中使用ExcelJS生成并下载Excel文件,兼容性问题及解决方案。
示例代码:

workbook.xlsx.writeBuffer().then(function (buffer){const blob = new Blob([buffer], { type: 'application/octet-stream'})// 下载 Excel 文件const filename= "下载的文件名.xlsx";if (typeof window.navigator.msSaveBlob !== 'undefined'){//兼容I浏览器window.navigator.msSaveBlob(blob, filename);} else {//其他浏览器const url = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = url;link.setAttribute('download',filename);document.body.appendChild(1ink);link.click();document.body.removeChild(1ink);}}).catch(e) => {console.log('err', e);}

最后如图:

总结与扩展

总结ExcelJS的优势,并推荐进一步学习资源或相关插件(如SheetJS、xlsx等)。

http://www.lryc.cn/news/609744.html

相关文章:

  • 计算机视觉(2)车规摄像头标准
  • 5天挑战网络编程 -DAY1(linux版)
  • python:讲懂决策树,为理解随机森林算法做准备,以示例带学习,通俗易懂,容易理解和掌握
  • 句子表征-文本匹配--representation-based/interactive-based
  • 学习日志27 python
  • 基于开源AI智能名片链动2+1模式与S2B2C商城小程序的直播营销销量转化机制研究
  • 短剧小程序系统开发:引领影视消费新潮流
  • 【世纪龙科技】汽车自动变速器拆装虚拟实训软件
  • 音视频文案字幕一键提取,免费使用,效率软件!
  • AR远程协作网页设计:虚实融合场景下的故障标注与操作指引界面
  • AR技术赋能轨道交通培训:虚实结合提升学习效率
  • AUTOSAR AR-Explorer正式发布
  • 6s081环境配置以及使用vscode连接本地wsl2
  • Qt 使用QtXlsx库处理Excel文件
  • AR技术赋能能源勘探:从数据可视化到智能预测的革命性突破
  • 《解构Angular组件变化检测:从自动到手 动的效能突破》
  • 【Git 误操作恢复指南】
  • 如何安装 nvm-setup.exe?Windows 安装 NVM 管理 Node.js 版本的完整流程(附安装包下载)
  • 配置Mybatis环境
  • ollama解锁LLM生成上下文长度
  • 墨者学院SQL过滤字符后手工绕过漏洞测试(万能口令)
  • Lifelong Learning and Selective Forgetting via Contrastive Strategy
  • 深度学习图像处理篇之AlexNet模型详解
  • docker镜像源配置教程,以及解决安装好docker配置镜像源后,出现报错。Job for docker.service failed
  • 洛谷做题11:P1424 小鱼的航程(改进版)
  • Android Espresso 测试框架深度解析:从入门到精通
  • GCC与AI:编译优化新革命
  • PHP进阶语法详解:命名空间、类型转换与文件操作
  • 第二十四天(数据结构:栈和队列)队列实践请看下一篇
  • 进一步分析云手机的优势有哪些?