前端福音:使用xlsx库和xlsx-style库轻松搞定Excel导入导出!
2023-10-14 19:39:48
使用 XLSX 库和 XLSX-Style 库导入和导出 Excel 文件
在前端开发中,导入和导出 Excel 文件是常见的需求。为满足此需求,诞生了许多优秀的 npm 库,其中最受欢迎的便是 XLSX 和 XLSX-Style 库。这两个库可以轻松实现 Excel 文件的导入和导出,并对 Excel 文件进行各种操作。本文将指导你使用这两个库,让你的前端应用程序更强大。
安装库
npm install xlsx --save
npm install xlsx-style --save
使用库
导入和导出 Excel 文件
const xlsx = require('xlsx');
// 导入 Excel 文件
const workbook = xlsx.readFile('test.xlsx');
// 获取第一个工作表
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
// 获取单元格值
const value = worksheet['A1'].v;
// 导出 Excel 文件
xlsx.writeFile(workbook, 'test_output.xlsx');
设置单元格背景色
const xlsx = require('xlsx');
const xlsxStyle = require('xlsx-style');
// 创建一个工作簿
const workbook = xlsx.utils.book_new();
// 创建一个工作表
const worksheet = xlsx.utils.aoa_to_sheet([['单元格 A1', '单元格 B1']]);
// 创建单元格样式
const style = xlsxStyle.build.Border({
left: {
style: 'thin',
color: 'FF0000'
},
right: {
style: 'thin',
color: 'FF0000'
},
top: {
style: 'thin',
color: 'FF0000'
},
bottom: {
style: 'thin',
color: 'FF0000'
}
});
// 将单元格样式应用到单元格
worksheet['A1'].s = style;
// 将工作表添加到工作簿
xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 导出 Excel 文件
xlsx.writeFile(workbook, 'test_output.xlsx');
设置文本居中
const xlsx = require('xlsx');
const xlsxStyle = require('xlsx-style');
// 创建一个工作簿
const workbook = xlsx.utils.book_new();
// 创建一个工作表
const worksheet = xlsx.utils.aoa_to_sheet([['单元格 A1', '单元格 B1']]);
// 创建单元格样式
const style = xlsxStyle.build.Alignment({
horizontal: 'center',
vertical: 'center'
});
// 将单元格样式应用到单元格
worksheet['A1'].s = style;
// 将工作表添加到工作簿
xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 导出 Excel 文件
xlsx.writeFile(workbook, 'test_output.xlsx');
合并单元格
const xlsx = require('xlsx');
// 创建一个工作簿
const workbook = xlsx.utils.book_new();
// 创建一个工作表
const worksheet = xlsx.utils.aoa_to_sheet([['单元格 A1', '单元格 B1'], ['单元格 A2', '单元格 B2']]);
// 合并单元格
worksheet['A1:B2'] = '合并后的单元格';
// 将工作表添加到工作簿
xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 导出 Excel 文件
xlsx.writeFile(workbook, 'test_output.xlsx');
设置列宽
const xlsx = require('xlsx');
// 创建一个工作簿
const workbook = xlsx.utils.book_new();
// 创建一个工作表
const worksheet = xlsx.utils.aoa_to_sheet([['单元格 A1', '单元格 B1']]);
// 设置列宽
worksheet['!cols'] = [{ wch: 10 }, { wch: 20 }];
// 将工作表添加到工作簿
xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 导出 Excel 文件
xlsx.writeFile(workbook, 'test_output.xlsx');
常见问题解答
-
如何使用 XLSX 库创建新的 Excel 文件?
创建一个新的工作簿并添加工作表。你可以使用xlsx.utils.book_new()
和xlsx.utils.book_append_sheet()
方法来实现。 -
如何获取 Excel 文件中的单元格值?
使用worksheet[cell_address].v
属性。例如:worksheet['A1'].v
获取单元格 A1 的值。 -
如何使用 XLSX-Style 库设置单元格的边框?
使用xlsxStyle.build.Border()
方法创建边框样式,然后将其应用到单元格的s
属性。 -
如何合并单元格并填充文本?
使用worksheet[range_address] = 'text'
语法来合并单元格并填充文本。例如:worksheet['A1:B2'] = '合并后的单元格'
。 -
如何使用 XLSX 库导出 Excel 文件到磁盘?
使用xlsx.writeFile(workbook, 'output_filename.xlsx')
方法,其中workbook
是工作簿对象,output_filename.xlsx
是要导出的文件名。
结语
XLSX 和 XLSX-Style 库提供了强大的功能,用于在前端应用程序中导入、导出和操作 Excel 文件。通过使用本文中提供的代码示例和分步指南,你可以轻松地将这些功能集成到你的项目中。