js实现Excel表格上传解析与导出

1. 二进制读取并解析xlsx文件

xlsx库:用于解析xlsx文件

import * as XLSX from 'xlsx';

let data = await readFile(file);                           //读取文件二进制
const workbook = XLSX.read(data, {type:'binary'});         // xlsx解析二进制文件
const worksheet = workbook.Sheets[workbook.SheetNames[0]]; // 获取解析的xlsx内容
const data = XLSX.utils.sheet_to_json(worksheet);          // 解析的xlsx内容转js对象形式


//读取文件的二进制并返回
function readFile(file) {
  return new Promise(resolve => {
	let reader = new FileReader()
	reader.readAsBinarySTring(file)
	reader.onload = ev => {
	  resolve(ev.target.result)
    }
  })
}

2. 浏览器将js对象导出成xlsx文件

import * as XLSX from 'xlsx';

// 导出的数据
const data = [
  { 姓名: '小明1', 年龄: 18, 电话: 110  },
  { 姓名: '小明2', 年龄: 19, 电话: 110  },
  { 姓名: '小明3', 年龄: 20, 电话: 110  },
];

const sheet = XLSX.utils.json_to_sheet(data); // json数据转sheet数据格式
const book = XLSX.utils.book_new();           // 新创建一个表格容器
XLSX.utils.book_append_sheet(book, sheet, 'sheetName');  // 数据加入名为'sheetName'的表格
XLSX.writeFile(book, `user${new Date().getTime()}.xls`); // 写入xls文件并且浏览器导出
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值