JavaScript结合xlsx.js实现excel数据导出导入功能

 更新时间:2026年02月28日 09:36:04   作者:Cxiaomu  
在做后端开发管理实际业务开发中,有时会遇到处理导入、导出Excel文件的数据,本文主要为大家详细介绍了JS如何使用xlsx.js实现这一功能,下面小编就和大家简单介绍一下吧

简介

在做后端开发管理实际业务开发中,有时会遇到处理导入、导出Excel文件的数据,比如多语言管理和报表数据。

将前端数据中对象数组格式的数据与excel格式数据进行相互转换。

既然时对 Excel 文件进行处理,自然需要插件了,比如 xlsx 。

于是,进行简单demo的实现与演示。

实现

安装

安装 xlsx

npm install xlsx --save
# or
yarn add xlsx

导出Excel文件数据

导出需要先获取到指定数据,然后对数据进行处理成合适的数据(即常规的列表数据),最后才是转换成 Excel 。

如本身是列表数据,可以对数据结构不进行处理,仅取需要导出的数据。

import XLSX from 'xlsx';

/** 将列表数据过滤出需要导出的属性 */
// objArr - 列表数据,labels - 需要导出的属性
const toBeExcelData = (objArr, labels) => {
  const resArr = []
  objArr.forEach((itemData) => {
    const theObj = {}
    const keys = Object.keys(itemData)
    keys.forEach((theKey) => {
      if (labels.includes(theKey)) theObj[theKey] = itemData[theKey]
    })
    resArr.push(theObj)
  })
  return resArr
}

/** 将数据转成 Excel 文件并导出 */
const exportToExcel = (data) => {
  const worksheet = XLSX.utils.json_to_sheet(data);
  const workbook = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1"); // 表名
  XLSX.writeFile(workbook, "exported-data.xlsx"); // 文件名,可加上文件路径
}

导入Excel文件数据

这里,就开始实现 Excel 文件数据导入了。

导入这里就比较简单了,利用插件的函数进行获取数据和格式转换就可以了。

import XLSX from 'xlsx'

/** 获取excel数据并解析 */
const getExcelData = (url) => {
  const workBook = XLSX.readFile(url) // 目标文件获取
  let name = workBook.SheetNames[0] // 读取表格中第一个表
  let sheet = workBook.Sheets[name] // 数据获取
  return XLSX.utils.sheet_to_json(sheet) // 数据格式转换
}

应用

导出

示例代码

// 列表数据
const demoData = [
  { name: '122', age: '24e', state: true, date: '20231227', address: 'asdfgfgg' },
  { name: '2233', age: '23', state: false, date: '20231225', address: 'zxcv' },
  { name: '3344', age: '22', state: true, date: '20231226', address: 'vbnmz' },
  { name: '678', age: '21', state: false, date: '20231224', address: '23svvcx' },
  { name: '3322', age: '24', state: true, date: '20231221', address: 'wdvggtr' },
  { name: '2266', age: '42', state: false, date: '20231223', address: 'igbxsxx' }
]

// 需导出的字段
const demoLabels = ['name', 'state', 'date','address']

const testDemo = () => {
  const data = toBeExcelData(demoData, demoLabels); // 数据过滤
  exportToExcel(data); // 导出
}
testDemo(); // 执行

效果

导入

示例代码

这里就用刚刚导出的excel文件进行导入并输出。

let resData = getExcelData('./exported-test.xlsx') // excel数据
console.log('input data: ', resData);

效果

到此这篇关于JavaScript结合xlsx.js实现excel数据导出导入功能的文章就介绍到这了,更多相关JavaScript excel数据导出导入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 常用的Javascript设计模式小结

    常用的Javascript设计模式小结

    javascript设计模式有很多种,本文给大家介绍常用的javascript设计模式,对javascript设计模式相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • JavaScript 对引擎、运行时、调用堆栈的概述理解

    JavaScript 对引擎、运行时、调用堆栈的概述理解

    这篇文章旨在深入挖掘JavaScript,以及向大家解释JavaScript是如何工作的。非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • 小程序实现录音上传功能

    小程序实现录音上传功能

    这篇文章主要为大家详细介绍了小程序实现录音上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • JavaScript算法教程之sku(库存量单位)详解

    JavaScript算法教程之sku(库存量单位)详解

    这篇文章主要给大家介绍了JavaScript算法教程之sku(库存量单位)的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • JS 循环li添加点击事件 (闭包的应用)

    JS 循环li添加点击事件 (闭包的应用)

    这篇文章主要介绍了js循环li添加点击事件 (闭包的应用)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • JavaScript正则表达式实例详解

    JavaScript正则表达式实例详解

    在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
    2016-10-10
  • 很棒的Bootstrap选项卡切换效果

    很棒的Bootstrap选项卡切换效果

    这篇文章主要为大家分享了一款很棒的Bootstrap选项卡切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 详解a++和++a的区别

    详解a++和++a的区别

    搞开发已经很久了,一直搞不懂a++和++a到底有所什么不同,后来通过查阅相关资料总结出一点规律,下面小编通过本文给大家介绍
    2017-08-08
  • JavaScript取消Promise操作的常见实现方式

    JavaScript取消Promise操作的常见实现方式

    在 JavaScript 中,Promise 本身没有内置的取消机制,但我们可以通过一些模式来实现类似取消的功能,以下是几种常见的实现方式,需要的朋友可以参考下
    2025-10-10
  • javascript中等于(==)与全等(===)的区别说明

    javascript中等于(==)与全等(===)的区别说明

    等于(==)的情况下 只要值相同就返回True。而全等(===)的时候需要值和类型都要匹配才能返回True.
    2011-01-01

最新评论