如何使用ExcelJS读取通过Form-Data传递的.xlsx文件内容
使用ExcelJS读取Form-Data上传的Excel文件
你当前代码的核心问题是Form-Data字段名不匹配:你传递的文件key是excel,但代码里却尝试解构file,导致无法获取到正确的文件数据。以下是修正后的完整实现:
async create(data, params) { // 匹配Form-Data中实际的key:excel const { excel } = data; const workbook = new ExcelJS.Workbook(); try { // 从文件二进制数据加载工作簿 await workbook.xlsx.load(excel.data); // 选中第一个工作表 const worksheet = workbook.worksheets[0]; const rows = []; // 遍历工作表的每一行(跳过表头可加参数:{ includeEmpty: false, startRow: 2 }) worksheet.eachRow((row, rowNumber) => { const rowData = {}; // 遍历当前行的每个单元格 row.eachCell((cell, colNumber) => { rowData[`col${colNumber}`] = cell.value; }); rows.push(rowData); }); // 返回处理后的行数据,可根据业务需求调整 return rows; } catch (error) { // 捕获并处理加载/解析错误 console.error('读取Excel文件失败:', error); throw new Error('Excel文件解析错误'); } }
关键注意事项
- 确保已安装ExcelJS依赖:执行
npm install exceljs完成安装 - 确认文件数据结构:不同后端框架对Form-Data文件的封装可能略有差异,需保证
excel.data是文件的二进制 Buffer 或 Uint8Array - 若需要跳过表头行,可修改
eachRow的参数为worksheet.eachRow({ startRow: 2 }, (row, rowNumber) => { ... })
内容的提问来源于stack exchange,提问作者Nwp _
相关产品推荐
相关产品推荐

