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

如何在NestJS中从第二行开始读取Excel文件?

在NestJS中实现从第二行读取Excel文件的简单方案

最直接的方式是借助xlsx库(处理Excel的常用轻量工具),通过内置配置跳过第一行,下面是具体实现步骤:

1. 安装依赖

npm install xlsx
# 若处理上传文件,确保已安装相关依赖
npm install @nestjs/platform-express multer

2. 编写Excel读取服务

创建Service封装读取逻辑,支持本地文件和上传文件两种场景:

import { Injectable } from '@nestjs/common';
import * as XLSX from 'xlsx';
import { Express } from 'express';

@Injectable()
export class ExcelService {
  // 读取本地Excel文件,从第二行开始
  readLocalExcel(filePath: string): any[] {
    const workbook = XLSX.readFile(filePath);
    const targetSheet = workbook.Sheets[workbook.SheetNames[0]];
    
    // 核心配置:skipHeader: true 直接跳过第一行表头
    const readOptions = {
      header: 1, // 返回二维数组格式,也可设为'A'返回键值对对象
      skipHeader: true,
    };

    return XLSX.utils.sheet_to_json(targetSheet, readOptions);
  }

  // 处理上传的Excel文件(MultipartFile)
  readUploadedExcel(file: Express.Multer.File): any[] {
    const workbook = XLSX.read(file.buffer, { type: 'buffer' });
    const targetSheet = workbook.Sheets[workbook.SheetNames[0]];

    const readOptions = {
      header: 1,
      skipHeader: true,
    };

    return XLSX.utils.sheet_to_json(targetSheet, readOptions);
  }
}

3. 在控制器中调用服务

如果是处理文件上传,用FileInterceptor接收文件并调用服务:

import { Controller, Post, UploadedFile, UseInterceptors } from '@nestjs/common';
import { FileInterceptor } from '@nestjs/platform-express';
import { ExcelService } from './excel.service';

@Controller('excel')
export class ExcelController {
  constructor(private readonly excelService: ExcelService) {}

  @Post('upload')
  @UseInterceptors(FileInterceptor('file'))
  handleFileUpload(@UploadedFile() file: Express.Multer.File) {
    const excelData = this.excelService.readUploadedExcel(file);
    return { data: excelData, message: '读取成功' };
  }
}

备选灵活方案(手动指定起始行)

如果需要更精细的行范围控制,可改用range参数(xlsx的行索引从0开始,range:1对应第二行):

const readOptions = {
  header: 1,
  range: 1, // 从第2行开始读取所有行
};

内容的提问来源于stack exchange,提问作者abdulAbarChabib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:40:24