淘先锋技术网

首页 1 2 3 4 5 6 7

在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文件中。