前端解析Excel文件

简介: 前端解析Excel文件


背景

用户上传excel文件需要在前端进行预览,在数据量不大,不影响性能体验的情况下,可以将excel解析放到前端进行操作,之后再将解析出来的数据传给后端

安装依赖 xlsx

npm i xlsx -S

关于xlsx的文档,可以查阅js-xlsx官方文档

组件中使用(以elementUI的el-upload作为上传组件)

<template>
  <div class="action">
    <el-upload
      action="/example/upload"
      ref="upload"
      :show-file-list="false"
      :on-change="readExcel"
      :auto-upload="false"
    >
    <el-button type="primary" class="btn-color">点击上传</el-button>
    </el-upload>
  </div>
</template>
<script lang='ts'>
import { Vue, Component } from 'vue-property-decorator';
import XLSX from 'xlsx';
@Component({
  components: {
  },
})
export default class ComponentName extends Vue {
  // 使用xlsx插件解析excel
  private readExcel(file: any) {
    const fileReader = new FileReader();
    fileReader.onload = (event: any) => {
      try {
        const data = event.target.result;
        const workbook = XLSX.read(data, { type: 'binary' });
        for (const sheet of Object.keys(workbook.Sheets)) {
          const sheetArray = XLSX.utils.sheet_to_json(workbook.Sheets[sheet]);
          this.handlePreview(sheetArray);
        }
      } catch (err) {
        console.log(err);
        return false;
      }
    };
    fileReader.readAsBinaryString(file.raw); // 必须调用
  }
  // 处理数据
  private handlePreview(originRows: any[]) {
    // 根据业务需求处理和筛选数据
    const rows = originRows.filter((item) => {
      if (item.序号) {
        return item.序号.toString().indexOf('1(示例)') === -1;
      }
      return item;
    });
    if (rows.length === 0) {
      console.log('导入数据至少一行!');
      return Promise.resolve();
    }
    console.log('解析并处理过后的excel数据', rows);
    return Promise.resolve();
  }  
}
</script>
<style lang='scss' scoped>
</style>

备注: 如果excel解析数据量有可能会很大的情况下,如5万条以上,最好是交由后端解析excel,避免影响用户体验

目录
相关文章
|
1月前
|
监控 数据处理 索引
使用Python批量实现文件夹下所有Excel文件的第二张表合并
使用Python和pandas批量合并文件夹中所有Excel文件的第二张表,通过os库遍历文件,pandas的read_excel读取表,concat函数合并数据。主要步骤包括:1) 遍历获取Excel文件,2) 读取第二张表,3) 合并所有表格,最后将结果保存为新的Excel文件。注意文件路径、表格结构一致性及异常处理。可扩展为动态指定合并表、优化性能、日志记录等功能。适合数据处理初学者提升自动化处理技能。
23 1
|
1月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
21 0
|
1月前
|
资源调度 前端开发 JavaScript
构建高效前端项目:现代包管理器与模块化的深度解析
【2月更文挑战第21天】 在当今快速演变的前端开发领域,高效的项目管理和代码组织已成为成功交付复杂Web应用的关键。本文将深入探讨现代前端包管理器如npm, yarn和pnpm的工作原理,以及它们如何与模块化编程实践(例如CommonJS、ES6模块)协同工作以优化开发流程。我们将剖析这些工具的内部机制,了解它们如何解决依赖冲突,提高安装速度,并保证项目的健壮性。同时,本文还将介绍模块化编程的最佳实践,包括代码拆分、重用和版本控制,帮助开发者构建可维护且性能卓越的前端项目。
|
1月前
|
存储 数据可视化 数据处理
Python中读取Excel文件的方法
【2月更文挑战第18天】
66 4
Python中读取Excel文件的方法
|
1月前
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
54 0
|
8天前
|
数据库
开发指南009-从list导出excel文件
从数据库返回一般是对象的列表,平台底层提供了从list转为excel文件的方法
|
9天前
|
数据挖掘 索引 Python
Python 读写 Excel 文件
Python 读写 Excel 文件
12 0
|
1月前
|
安全 Java 数据库连接
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
154 0
|
1月前
|
存储 数据处理 Python
使用Python批量合并Excel文件的所有Sheet数据
使用Python批量合并Excel文件的所有Sheet数据
33 0
|
1月前
|
JavaScript
盘点CSV文件在Excel中打开后乱码问题的两种处理方法
盘点CSV文件在Excel中打开后乱码问题的两种处理方法
162 0

推荐镜像

更多