前端导入功能

// npm install xlsx 下载xlsx依赖,并引入

import * as XLSX from "xlsx";

/

const DocsPage = () => {

const handleImport = (file: any) => {

try {

const { files } = file.target;

const fileReader = new FileReader();

console.log("fileReader", fileReader);

fileReader.onload = (event: any) => {

console.log("event", event);

const { result } = event.target;

// 以二进制流方式读取得到整份excel表格对象

const workbook = XLSX.read(result, { type: "binary" });

console.log(workbook, "workbook");

let data: any[] = []; // 存储获取到的数据

for (const sheet in workbook.Sheets) {

if (Object.prototype.hasOwnProperty.call(workbook.Sheets, sheet)) {

//这是关键的一步,hasOwnPropert要从Object的原型中调用

// 利用 sheet_to_json 方法将 excel 转成 json 数据

data = data.concat(

XLSX.utils.sheet_to_json(workbook.Sheets[sheet])

);

// break; // 如果只取第一张表,就取消注释这行

}

}

// 此处调用后端接口

console.log(data, "data");

};

fileReader.readAsBinaryString(files[0]);

} catch (e) {

console.log(e);

}

};

return (

<div>

<label

htmlFor="file"

style={{ position: "absolute", left: 0, top: 0, zIndex: 1 }}

>

<button>

<input

type="file"

id="file"

style={{

position: "absolute",

left: 0,

top: 0,

opacity: 0,

zIndex: 99,

}}

onChange={handleImport}

// accept=".xlsx, .xls"

/>

批量导入

</button>

</label>

</div>

);

};

export default DocsPage;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值