You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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 _

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:32:11