当前位置:首页 > VUE

vue实现excel导入导出

2026-02-22 00:23:10VUE

Vue 实现 Excel 导入导出

安装依赖

使用 xlsx 库处理 Excel 文件,安装命令如下:

npm install xlsx

Excel 导入实现

通过 <input type="file"> 获取文件,使用 xlsx 解析数据。

<template>
  <input type="file" @change="handleFileUpload" accept=".xlsx, .xls" />
</template>

<script>
import * as XLSX from 'xlsx';

export default {
  methods: {
    handleFileUpload(event) {
      const file = event.target.files[0];
      const reader = new FileReader();
      reader.onload = (e) => {
        const data = new Uint8Array(e.target.result);
        const workbook = XLSX.read(data, { type: 'array' });
        const firstSheetName = workbook.SheetNames[0];
        const worksheet = workbook.Sheets[firstSheetName];
        const jsonData = XLSX.utils.sheet_to_json(worksheet);
        console.log(jsonData); // 处理导入的数据
      };
      reader.readAsArrayBuffer(file);
    }
  }
};
</script>

Excel 导出实现

将数据转换为 Excel 文件并下载。

<template>
  <button @click="exportToExcel">导出 Excel</button>
</template>

<script>
import * as XLSX from 'xlsx';

export default {
  data() {
    return {
      exportData: [
        { name: '张三', age: 25 },
        { name: '李四', age: 30 }
      ]
    };
  },
  methods: {
    exportToExcel() {
      const worksheet = XLSX.utils.json_to_sheet(this.exportData);
      const workbook = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
      XLSX.writeFile(workbook, '导出数据.xlsx');
    }
  }
};
</script>

处理复杂数据

若需导出带表头或合并单元格的复杂数据,可通过 xlsxaoa_to_sheet 方法实现。

vue实现excel导入导出

const complexData = [
  ['姓名', '年龄'], // 表头
  ['张三', 25],
  ['李四', 30]
];
const worksheet = XLSX.utils.aoa_to_sheet(complexData);

注意事项

  • 导入时需校验文件格式,避免非 Excel 文件。
  • 导出大数据量时可能需分片处理,避免内存溢出。
  • 浏览器兼容性问题可通过 FileSaver.js 辅助解决(需单独安装)。

扩展功能

  • 使用 vue-element-adminExcel 组件可快速集成。
  • 服务端导出可通过后端生成文件流,前端调用下载接口。

标签: vueexcel
分享给朋友:

相关文章

vue里实现增删改查

vue里实现增删改查

在Vue中实现增删改查 数据初始化 在Vue组件的data中定义初始数据和表单绑定的变量: data() { return { items: [ { id: 1, name:…

vue实现jqueryui

vue实现jqueryui

Vue 实现 jQuery UI 功能 在 Vue 项目中实现类似 jQuery UI 的功能,可以通过原生 Vue 组件或第三方库来实现。以下是几种常见 jQuery UI 功能的 Vue 替代方案…

vue实现前端

vue实现前端

Vue 实现前端的核心方法与步骤 安装 Vue 项目 使用 Vue CLI 或 Vite 创建项目。Vue CLI 是传统构建工具,Vite 是新一代轻量级工具。 npm init vue@la…

vue翻页实现

vue翻页实现

Vue翻页实现方法 基础分页组件实现 使用v-for和计算属性实现基础分页逻辑: <template> <div> <ul> <li…

vue多选实现

vue多选实现

Vue 多选实现方法 基础实现(v-model + multiple) 在 Vue 中实现多选可以通过 <select> 元素的 multiple 属性结合 v-model 完成。v-mo…

laravel vue实现登录

laravel vue实现登录

Laravel 和 Vue.js 实现登录功能 后端配置(Laravel) 安装 Laravel Sanctum 用于 API 认证 composer require laravel/sanctu…