1、在工具类中创建一个脚本文件
import XLSXS from "xlsx-js-style" ;
export function exportExcel ( tableValueData, tableTitleData, fileName, tableHeader ) { const header = [ ] ; const body = [ ] ; let strMaxNum = { } ; tableValueData. forEach ( ( e, i ) => { let styleArr = [ ] ; e. forEach ( ( ele, ei ) => { if ( ! ele) ele = 0 ; let styleObj = { v : ele, t : "s" , s : { alignment : { vertical : "center" , horizontal : "center" , } , border : { top : { style : "thin" } , left : { style : "thin" } , bottom : { style : "thin" } , right : { style : "thin" } , } , } , } ; styleArr. push ( styleObj) ; strMaxNum[ ei] = strMaxNum[ ei] ? strMaxNum[ ei] > ele. toString ( ) . length? strMaxNum[ ei] : ele. toString ( ) . length: ele. toString ( ) . length; } ) ; body. push ( styleArr) ; } ) ; let cols = [ ] ; let title1 = [ ] ; tableTitleData. forEach ( ( item, index ) => { let obj = { v : item, t : "s" , s : { alignment : { vertical : "center" , horizontal : "center" , } , border : { top : { style : "thin" } , left : { style : "thin" } , bottom : { style : "thin" } , right : { style : "thin" } , } , } , } ; title1. push ( obj) ; let resultMaxNum = Number ( item. length) > strMaxNum[ index] ? Number ( item. length) : strMaxNum[ index] ; let colsObj = { wch : resultMaxNum * 2 + 5 } ; cols. push ( colsObj) ; if ( index == 0 ) { header. push ( { v : tableHeader, t : "s" , s : { font : { bold : true , sz : 14 , name : "宋体" , } , alignment : { vertical : "center" , horizontal : "center" , } , border : { top : { style : "thin" } , left : { style : "thin" } , bottom : { style : "thin" } , right : { style : "thin" } , } , } , } ) ; } else { header. push ( { v : '' , t : "s" , s : { font : { bold : true , sz : 14 , name : "宋体" , } , alignment : { vertical : "center" , horizontal : "center" , } , border : { top : { style : "thin" } , left : { style : "thin" } , bottom : { style : "thin" } , right : { style : "thin" } , } , } , } ) ; } } ) ; body. unshift ( title1) ; body. unshift ( header) ; const sheet = XLSXS . utils. aoa_to_sheet ( body) ; sheet[ "!cols" ] = cols; const rows = [ { hpx : 20 } , { hpx : 16 } , { hpx : 18 } ] ; sheet[ "!rows" ] = rows; let mergeNum = tableTitleData. length - 1 ; const merges = [ { s : { r : 0 , c : 0 } , e : { r : 0 , c : mergeNum } } ] ; sheet[ "!merges" ] = merges; const workbook = XLSXS . utils. book_new ( ) ; XLSXS . utils. book_append_sheet ( workbook, sheet, tableHeader) ; XLSXS . writeFile ( workbook, ` ${ fileName} .xlsx ` ) ;
}
2、在需要的地方引入使用
exportExcel(arr1, arr2, var1, var2)