使用xlsx导出Excel文件
import React, { useEffect, useState, Fragment } from 'react'
import XLSX from 'xlsx';
export default function ExportExcle() {
const workbook2blob = (workbook) => {
var wopts = {
bookType: 'xlsx',
bookSST: false,
type: 'binary'
}
var wbout = XLSX.write(workbook, wopts)
function s2ab(s) {
var buf = new ArrayBuffer(s.length)
var view = new Uint8Array(buf)
for (var i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xff
return buf
}
let buf = s2ab(wbout)
var blob = new Blob([buf], {
type: 'application/octet-stream'
})
return blob
}
const openDownloadDialog = (blob, fileName) => {
if (typeof blob === 'object' && blob instanceof Blob) {
blob = URL.createObjectURL(blob)
}
var aLink = document.createElement('a')
aLink.href = blob
aLink.download = fileName || ''
var event
if (window.MouseEvent) event = new MouseEvent('click')
else {
event = document.createEvent('MouseEvents')
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
}
aLink.dispatchEvent(event)
}
const exportExport = () => {
const sheetData1 =[{name:"易烊千玺", age: 20,sex:"男"},{name:"李现",age: 30,sex:"男"}]
const sheet1 = XLSX.utils.json_to_sheet(sheetData1);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, sheet1, "爱豆信息");
const workbookBlob = workbook2blob(wb);
openDownloadDialog(workbookBlob, '爱豆信息.xlsx');
}
return (
<button onClick={() => exportExport()}></button>在这里插入代码片
)
}