在Web應用程序開發(fā)中,我們需要將數(shù)據(jù)導出到Excel文件中。而JavaScript提供了一種簡單有效的方式來創(chuàng)建和導出Excel文件。本篇文章將詳細介紹如何使用JavaScript創(chuàng)建Excel文件。
使用FileSaver.js庫生成Excel文件
FileSaver.js是一個用于處理文件下載的JavaScript庫。使用該庫,我們可以將生成的Excel文件下載到本地電腦。
// 引入FileSaver.js庫文件 <script src="https://cdn.jsdelivr.net/npm/filesaver.js/dist/FileSaver.min.js"></script> // 創(chuàng)建Excel文件 const data = [ ['姓名', '年齡', '性別'], ['小紅', 20, '女'], ['小明', 22, '男'], ]; const sheetName = '學生信息表'; const worksheet = XLSX.utils.json_to_sheet(data); const workbook = { Sheets: { 'data': worksheet }, SheetNames: [sheetName] }; const excelBuffer = XLSX.write(workbook,{ bookType: 'xlsx', type: 'array' }); const excelBlob = new Blob([excelBuffer], {type: 'application/octet-stream'}); // 下載Excel文件 saveAs(excelBlob, sheetName + '.xlsx');
上述代碼使用了XLSX庫來創(chuàng)建Excel文件,并使用FileSaver.js庫將文件下載到本地電腦。
使用SheetJS庫生成Excel文件
SheetJS是一個處理電子表格文件的JavaScript庫。使用該庫,我們可以方便地生成和導出Excel文件。
// 引入SheetJS庫文件 <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.14.3/xlsx.full.min.js"></script> // 創(chuàng)建Excel文件 const data = [ ['姓名', '年齡', '性別'], ['小紅', 20, '女'], ['小明', 22, '男'], ]; const sheetName = '學生信息表'; const worksheet = XLSX.utils.aoa_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, sheetName); // 導出Excel文件 XLSX.writeFile(workbook, sheetName + '.xlsx');
上述代碼使用了SheetJS庫來創(chuàng)建Excel文件,并使用XLSX.writeFile()函數(shù)將文件導出。
使用JSZip庫將多個sheet導出到一個Excel文件中
JSZip是一個用于創(chuàng)建和解壓縮ZIP文件的JavaScript庫。使用該庫,我們可以將多個sheet導出到一個Excel文件中。
// 引入JSZip庫文件 <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.6.0/jszip.min.js"></script> // 創(chuàng)建Excel文件 const sheetNames = ['學生信息表1', '學生信息表2']; const data = [ [['姓名', '年齡', '性別'], ['小紅', 20, '女'], ['小明', 22, '男']], [['姓名', '年齡', '性別'], ['小張', 18, '男'], ['小李', 21, '女']], ]; const workbook = XLSX.utils.book_new(); for (let i = 0; i < sheetNames.length; i++) { const worksheet = XLSX.utils.aoa_to_sheet(data[i]); XLSX.utils.book_append_sheet(workbook, worksheet, sheetNames[i]); } // 導出Excel文件 workbook.SSF = XLSX.SSF; const zip = new JSZip(); const buffer = XLSX.write(workbook, {bookType:'xlsx', type:'buffer'}); zip.file(sheetNames[0] + '.xlsx', buffer); zip.generateAsync({type:'blob'}).then(function(content) { saveAs(content, '學生信息表.zip'); });
上述代碼使用了JSZip庫來將多個sheet導出到一個Excel文件中,并使用FileSaver.js庫將ZIP文件下載到本地電腦。
總結(jié)
本文介紹了三種使用JavaScript創(chuàng)建Excel文件的方法。使用FileSaver.js庫和SheetJS庫可以分別生成和導出單個Excel文件,而使用JSZip庫可以將多個sheet導出到一個Excel文件中。