首先,需要使用第三方库解析 Excel 文件,比如 xlsxexceljs

  1. 获取模板文件数据和样式

可以使用 xlsx 库中的 readFile 方法读取 Excel 文件,然后使用 utils.sheet_to_json 方法将 Excel 中的数据转换为 JSON 格式。同时,使用 utils.sheet_to_csv 方法将 Excel 中的样式转换为 CSV 格式。

const XLSX = require('xlsx');

// 读取 Excel 文件
const workbook = XLSX.readFile('template.xlsx');

// 获取第一个工作表的名称
const sheetName = workbook.SheetNames[0];

// 获取第一个工作表中的数据
const data = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]);

// 获取第一个工作表中的样式
const csv = XLSX.utils.sheet_to_csv(workbook.Sheets[sheetName], { FS: '\t' });
  1. 对数据进行修改、添加

对获取到的数据进行修改或添加,可以直接修改 JSON 格式的数据。比如,将 data 中的某一行数据的某个字段修改为新的值:

data[0].column1 = 'new value';
  1. 将数据添加到模板样式后导出

将修改后的数据按照原有样式导出,可以使用 exceljs 库。首先,需要使用 exceljs 创建一个工作簿和一个工作表,并将获取到的样式设置到工作表中。然后,使用 worksheet.addRow 方法将修改后的数据添加到工作表中,最后使用 workbook.xlsx.writeFile 方法将工作簿导出为 Excel 文件。

const ExcelJS = require('exceljs');

// 创建工作簿和工作表
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet(sheetName);

// 将获取到的样式设置到工作表中
const style = worksheet.csv(csv);
worksheet.eachRow((row, rowNumber) => {
  row.eachCell((cell, colNumber) => {
    cell.style = style[rowNumber][colNumber].style;
  });
});

// 将修改后的数据添加到工作表中
data.forEach((item) => {
  worksheet.addRow(item);
});

// 导出为 Excel 文件
workbook.xlsx.writeFile('output.xlsx');
Vue 解析 Excel 模板文件并导出自定义数据

原文地址: https://www.cveoy.top/t/topic/oNls 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录