当前位置:首页 > VUE

vue实现导出表格数据

2026-01-22 14:24:43VUE

使用 vue-json-excel 插件导出表格数据

安装 vue-json-excel 插件

npm install vue-json-excel

在 main.js 中引入并注册组件

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

在组件中使用

<download-excel 
  :data="tableData"
  :fields="jsonFields"
  name="导出数据.xls">
  <button>导出Excel</button>
</download-excel>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 }
      ],
      jsonFields: {
        'ID': 'id',
        '姓名': 'name',
        '年龄': 'age'
      }
    }
  }
}

使用 xlsx 和 file-saver 库实现导出

安装所需依赖

npm install xlsx file-saver

实现导出功能

import XLSX from 'xlsx'
import FileSaver from 'file-saver'

export default {
  methods: {
    exportExcel() {
      const data = this.tableData
      const worksheet = XLSX.utils.json_to_sheet(data)
      const workbook = XLSX.utils.book_new()
      XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1')
      const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' })
      const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
      FileSaver.saveAs(blob, '导出数据.xlsx')
    }
  }
}

使用原生 JavaScript 实现 CSV 导出

实现 CSV 导出方法

export default {
  methods: {
    exportToCSV() {
      const data = this.tableData
      const csvContent = "data:text/csv;charset=utf-8," 
        + data.map(row => Object.values(row).join(",")).join("\n")

      const encodedUri = encodeURI(csvContent)
      const link = document.createElement("a")
      link.setAttribute("href", encodedUri)
      link.setAttribute("download", "导出数据.csv")
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link)
    }
  }
}

表格数据格式化处理

处理日期和特殊字符

formatData(data) {
  return data.map(item => {
    return {
      ...item,
      date: this.$moment(item.date).format('YYYY-MM-DD'),
      amount: `¥${item.amount.toFixed(2)}`
    }
  })
}

处理多级嵌套对象

flattenData(data) {
  return data.map(item => {
    return {
      id: item.id,
      name: item.user.name,
      department: item.user.department.name
    }
  })
}

服务器端数据导出实现

通过 API 请求导出

exportExcelFromServer() {
  axios({
    url: '/api/export',
    method: 'GET',
    responseType: 'blob'
  }).then(response => {
    const url = window.URL.createObjectURL(new Blob([response.data]))
    const link = document.createElement('a')
    link.href = url
    link.setAttribute('download', '服务器数据.xlsx')
    document.body.appendChild(link)
    link.click()
  })
}

vue实现导出表格数据

标签: 表格数据
分享给朋友:

相关文章

vue实现表格复选

vue实现表格复选

Vue实现表格复选的方法 基础实现 在Vue中实现表格复选功能可以通过v-model绑定复选框的状态,结合v-for循环渲染表格数据。以下是一个基础示例: <template> &l…

css表格制作表格

css表格制作表格

CSS 表格制作方法 使用 CSS 创建表格可以通过多种方式实现,包括原生 HTML 表格元素结合 CSS 样式,或者使用纯 CSS 布局技术(如 Flexbox 或 Grid)模拟表格效果。以下是常…

vue实现简单表格

vue实现简单表格

Vue 实现简单表格的方法 使用原生 HTML 表格 在 Vue 模板中可以直接使用 HTML 原生表格标签,通过 v-for 动态渲染数据: <template> <tab…

vue实现导出表格

vue实现导出表格

Vue 中实现表格导出 使用 xlsx 库导出 Excel 安装 xlsx 库: npm install xlsx --save 在 Vue 组件中引入并使用: import XLSX from…

网页表格制作css代码

网页表格制作css代码

基础表格样式 使用CSS为HTML表格添加基础样式,如边框、间距和背景色: table { width: 100%; border-collapse: collapse; margin…

怎么制作css表格

怎么制作css表格

使用HTML和CSS创建表格 HTML提供<table>标签用于创建表格结构,CSS用于控制样式。以下是一个基础示例: <table class="styled-table">…