返回

前端福音:使用xlsx库和xlsx-style库轻松搞定Excel导入导出!

前端

使用 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');

常见问题解答

  1. 如何使用 XLSX 库创建新的 Excel 文件?
    创建一个新的工作簿并添加工作表。你可以使用 xlsx.utils.book_new()xlsx.utils.book_append_sheet() 方法来实现。

  2. 如何获取 Excel 文件中的单元格值?
    使用 worksheet[cell_address].v 属性。例如:worksheet['A1'].v 获取单元格 A1 的值。

  3. 如何使用 XLSX-Style 库设置单元格的边框?
    使用 xlsxStyle.build.Border() 方法创建边框样式,然后将其应用到单元格的 s 属性。

  4. 如何合并单元格并填充文本?
    使用 worksheet[range_address] = 'text' 语法来合并单元格并填充文本。例如:worksheet['A1:B2'] = '合并后的单元格'

  5. 如何使用 XLSX 库导出 Excel 文件到磁盘?
    使用 xlsx.writeFile(workbook, 'output_filename.xlsx') 方法,其中 workbook 是工作簿对象,output_filename.xlsx 是要导出的文件名。

结语

XLSX 和 XLSX-Style 库提供了强大的功能,用于在前端应用程序中导入、导出和操作 Excel 文件。通过使用本文中提供的代码示例和分步指南,你可以轻松地将这些功能集成到你的项目中。