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

前端excel带样式导出 exceljs 插件的使用

本来用的xlsx和xlsx-style两个插件,过程一步一个坑,到完全能用要消灭好多bug。这时发现了exceljs,真香😀

在这里插入图片描述

案例

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1"><title>exceljs 使用</title></head><body><button onclick="exporting()">导出</button><script>function exporting() {// 创建工作簿const workbook = new ExcelJS.Workbook()// 添加工作表const worksheet = workbook.addWorksheet('sheet1')// 设置表头worksheet.columns = [{header: '名次',key: 'sort',width: 10},{header: '班级',key: 'class',width: 20},{header: '姓名',key: 'name',width: 20},{header: '得分',key: 'score',width: 10},]// 添加表体数据worksheet.addRow({sort: 1,class: '前端三班',name: 'Buer',score: 99})worksheet.addRow({sort: 2,class: '前端一班',name: 'Jack',score: 86})worksheet.addRow({sort: 3,class: '前端一班',name: 'Mary',score: 58})// 设置单元格 const aCell = worksheet.getCell('A1')// 1.边框 https://github.com/exceljs/exceljs/blob/HEAD/README_zh.md#%E8%BE%B9%E6%A1%86aCell.border = {top: {style: 'thin'},left: {style: 'thin'},bottom: {style: 'thin'},right: {style: 'thin'},}// 2.填充 https://github.com/exceljs/exceljs/blob/HEAD/README_zh.md#%E5%A1%AB%E5%85%85aCell.fill = {type: 'pattern',pattern: 'mediumGray',fgColor: {rgb: '#c2c2c2'}}// 设置行样式 https://github.com/exceljs/exceljs/blob/HEAD/README_zh.md#%E5%AD%97%E4%BD%93worksheet.getRow(1).font = {bold: true,}// 导出表格workbook.xlsx.writeBuffer().then((buffer) => {const blob = new Blob([buffer], {type: ''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet''})const link = document.createElement('a')link.href = URL.createObjectURL(blob)link.download = '测试' + '.xlsx'link.click()URL.revokeObjectURL(link.href) // 下载完成释放掉blob对象})}</script><script src="https://cdn.jsdelivr.net/npm/exceljs@4.4.0"></script></body>
</html>

列宽自适应:https://ask.csdn.net/questions/8062252/54484687?spm=1001.2014.3001.5501

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

相关文章:

  • 用GOGS搭建GIT服务器
  • 2024年美赛数学建模E题思路分析 - 财产保险的可持续性
  • 哪种安全数据交换系统,可以满足信创环境要求?
  • OfficeWeb365 Readfile 任意文件读取漏洞
  • 机器学习基础、数学统计学概念、模型基础技术名词及相关代码个人举例
  • 小埋的解密游戏的题解
  • idea常用设置
  • npm出现 Error: EISDIR: illegal operation on a directory, read
  • 简易计算器的制作(函数指针数组的实践)
  • HBase相关面试准备问题
  • sklearn实现数据标准化(Standardization)和归一化(Normalization)
  • 做技术的应该是没有什么你不会
  • MySQL进阶45讲【10】MySQL为什么有时候会选错索引?
  • 网络安全-端口扫描和服务识别的几种方式
  • 【分布式】雪花算法学习笔记
  • 6.函数表达式 - JS
  • 【RK3288 Android10 C30 支持sim卡拔掉不弹窗,及热插拔】
  • python生成docx文件
  • 网络异常案例四_IP异常
  • Hack The Box-Challenges-Misc-M0rsarchive
  • 验证码倒计时:用户界面的小细节,大智慧
  • Web后端:CSRF攻击及应对方法
  • 【手写数据库toadb】toadb表对象访问操作,存储管理抽象层软件架构设计思想应用
  • SpringBoot使用Rabbit详解含完整代码
  • 深度学习本科课程 实验3 网络优化
  • Eclipse 安装使用ABAPGit
  • std::mutex std::recursive_mutex std::shared_mutex
  • vscode的vetur文档格式化失效
  • idea 快捷键ctrl+shift+f失效的解决方案
  • C++面试:数据库的连接池管理