当前位置:首页 > VUE

vue实现网页导出excel

2026-02-22 12:00:39VUE

使用 xlsx 库实现导出

安装 xlsx 库:

npm install xlsx

在 Vue 组件中引入:

import * as XLSX from 'xlsx'

导出方法示例:

exportToExcel() {
  const data = [
    ['姓名', '年龄', '城市'],
    ['张三', 25, '北京'],
    ['李四', 30, '上海']
  ]

  const ws = XLSX.utils.aoa_to_sheet(data)
  const wb = XLSX.utils.book_new()
  XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
  XLSX.writeFile(wb, '导出数据.xlsx')
}

使用 vue-json-excel 插件

安装插件:

npm install vue-json-excel

全局注册组件:

vue实现网页导出excel

import JsonExcel from 'vue-json-excel'
Vue.component('downloadExcel', JsonExcel)

模板中使用:

<download-excel
  :data="json_data"
  :fields="json_fields"
  name="文件名.xlsx">
  导出Excel
</download-excel>

数据格式示例:

export default {
  data() {
    return {
      json_fields: {
        '姓名': 'name',
        '年龄': 'age',
        '城市': 'city'
      },
      json_data: [
        {name: '张三', age: 25, city: '北京'},
        {name: '李四', age: 30, city: '上海'}
      ]
    }
  }
}

处理大数据量导出

使用 Web Worker 防止界面卡顿:

vue实现网页导出excel

// worker.js
self.importScripts('https://cdn.jsdelivr.net/npm/xlsx@0.18.5/dist/xlsx.full.min.js')

self.onmessage = function(e) {
  const { data, fileName } = e.data
  const ws = XLSX.utils.json_to_sheet(data)
  const wb = XLSX.utils.book_new()
  XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
  XLSX.writeFile(wb, fileName)
  self.postMessage('done')
}

主线程调用:

const worker = new Worker('./worker.js')
worker.postMessage({
  data: largeDataArray,
  fileName: '大数据导出.xlsx'
})

自定义样式和格式

设置单元格样式:

const ws = XLSX.utils.json_to_sheet(data)
ws['A1'].s = { font: { bold: true, color: { rgb: 'FF0000' } } }

设置列宽:

ws['!cols'] = [
  { wch: 20 }, // 第一列宽度
  { wch: 10 }, // 第二列宽度
  { wch: 15 }  // 第三列宽度
]

导出多个工作表

创建多个工作表:

const wb = XLSX.utils.book_new()
const ws1 = XLSX.utils.json_to_sheet(data1)
const ws2 = XLSX.utils.json_to_sheet(data2)

XLSX.utils.book_append_sheet(wb, ws1, 'Sheet1')
XLSX.utils.book_append_sheet(wb, ws2, 'Sheet2')
XLSX.writeFile(wb, '多工作表.xlsx')

标签: 网页vue
分享给朋友:

相关文章

vue element实现

vue element实现

Vue Element UI 实现 Vue Element UI 是基于 Vue.js 的组件库,提供丰富的 UI 组件,适合快速开发企业级中后台产品。以下是一些关键实现方法和步骤: 安装 Vue…

vue 实现弹幕

vue 实现弹幕

vue 实现弹幕的方法 使用 CSS 动画和动态渲染 在 Vue 中实现弹幕效果,可以通过动态渲染弹幕元素并结合 CSS 动画实现。以下是具体步骤: 数据准备 创建一个数组存储弹幕数据,每条弹幕…

vue实现图册

vue实现图册

Vue实现图册功能 在Vue中实现图册功能通常涉及图片展示、切换、缩放等交互效果。以下是常见的实现方法和关键代码示例: 基础图册组件结构 使用Vue单文件组件构建基础结构: <templ…

vue实现登出

vue实现登出

实现Vue登出功能 登出功能通常涉及清除用户会话、令牌或本地存储的数据,并重定向到登录页面。以下是几种常见的实现方式: 清除用户令牌和状态 在Vuex的store中定义一个logout mutati…

vue如何实现

vue如何实现

Vue 实现方法 在 Vue 中实现功能通常涉及组件化开发、状态管理和响应式数据绑定。以下是几种常见的实现方式: 组件化开发 使用 Vue 的单文件组件(.vue 文件)结构,将 UI 拆分为可复…

vue实现心电图

vue实现心电图

Vue 实现心电图效果 在 Vue 中实现心电图效果通常需要结合 Canvas 或 SVG 进行动态绘图,模拟心电图数据的实时变化。以下是两种实现方式的核心思路和代码示例: 使用 Canvas 绘制…