Web导出Excel表格

背景:

  1. 后端主导实现

流程:前端调用到导出excel接口 -> 后端返回excel文件流 -> 浏览器会识别并自动下载

场景:大部分场景都有后端来做

  1. 前端主导实现

流程:前端获取要导出的数据 -> 常规数据用插件处理成一个excel文件 -> 浏览器下载

场景:少数据量的导出

效果图 :

使用三方插件做需求

  1. 不考虑具体业务 实现一个能跑起来最简单的DEMO 基础环境 + 基础效果
  2. 在基础DEMO基础上按照实际的业务数据去做对应的修改
TypeScript 复制代码
pnpm i xlsx
pnpm i @types/xlsx
TypeScript 复制代码
import { utils, writeFileXLSX } from 'xlsx'

const exportToExcel = ()=>{
  // 1. 创建一个新的工作簿
  const workbook = utils.book_new()
  // 2. 创建一个工作表 要求一个对象数组格式(可以根据需要创建多个)
  const worksheet = utils.json_to_sheet(
    [
      { name: '张三', age: 18 },
      { name: '李四', age: 28 }
    ]
  )
  // 3. 把工作表添加到工作簿  Data为工作表名称
  utils.book_append_sheet(workbook, worksheet, 'Data')
  // 改写表头
  utils.sheet_add_aoa(worksheet, [['姓名', '年龄']], { origin: 'A1' })
  // 4. 导出方法进行导出
  writeFileXLSX(workbook, '计费规则表.xlsx')
}

<el-button @click="exportToExcel">导出Excel</el-button>
相关推荐
半岛@少年3 分钟前
Webpack在前端项目中究竟发挥什么作用?
前端·webpack·前端工程化
2501_940041745 分钟前
企业官网与品牌落地页,能直接交付的前端题目
前端
川冰ICE5 分钟前
JavaScript高级④|类(class)与面向对象,ES6现代写法
开发语言·javascript·es6
ken223210 分钟前
excel表格为什么越存文件越大? libreoffice 有效
excel
小番茄夫斯基12 分钟前
全球大模型的价格和能力排行汇总
前端·后端·架构
Sirius Wu13 分钟前
Agent模型冷启动问题
开发语言·javascript·人工智能·机器学习·ecmascript·aigc
小小小小宇24 分钟前
前端领域 30 个值得安装的 Agent Skills
前端
xkxnq27 分钟前
第八阶段:工程化、质量管控与高级拓展(132天),Vue项目文档自动化:VuePress搭建组件文档(组件示例+API说明)
javascript·vue.js·自动化
喵了几个咪28 分钟前
基于 Next.js 的 Headless CMS 前端架构:技术解析与二次开发导引
前端·javascript·架构
星栈30 分钟前
Makepad 不只是画界面:事件、状态和组件通信,到底怎么写
前端·rust