在Web应用程序开发中,我们需要将数据导出到Excel文件中。而JavaScript提供了一种简单有效的方式来创建和导出Excel文件。本篇文章将详细介绍如何使用JavaScript创建Excel文件。
使用FileSaver.js库生成Excel文件
FileSaver.js是一个用于处理文件下载的JavaScript库。使用该库,我们可以将生成的Excel文件下载到本地电脑。
// 引入FileSaver.js库文件 <script src="https://cdn.jsdelivr.net/npm/filesaver.js/dist/FileSaver.min.js"></script> // 创建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库来创建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> // 创建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库来创建Excel文件,并使用XLSX.writeFile()函数将文件导出。
使用JSZip库将多个sheet导出到一个Excel文件中
JSZip是一个用于创建和解压缩ZIP文件的JavaScript库。使用该库,我们可以将多个sheet导出到一个Excel文件中。
// 引入JSZip库文件 <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.6.0/jszip.min.js"></script> // 创建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文件下载到本地电脑。
总结
本文介绍了三种使用JavaScript创建Excel文件的方法。使用FileSaver.js库和SheetJS库可以分别生成和导出单个Excel文件,而使用JSZip库可以将多个sheet导出到一个Excel文件中。