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

如何使用Node.js从Excel文件中提取图片?求适用类库

Node.js 从Excel单元格提取图片的实现方案

可用类库及实现示例

1. xlsx(SheetJS)

这是一款轻量化、应用广泛的Excel处理库,支持提取工作表中的图片数据。

安装依赖

npm install xlsx

提取代码

const XLSX = require('xlsx');
const fs = require('fs');
const path = require('path');

// 读取目标Excel文件
const workbook = XLSX.readFile('your-file.xlsx');

// 遍历所有工作表
workbook.SheetNames.forEach(sheetName => {
  const worksheet = workbook.Sheets[sheetName];
  
  // 检查当前工作表是否包含图片
  if (worksheet['!images']) {
    worksheet['!images'].forEach((img, index) => {
      // 解析图片格式
      const ext = img.type.split('/')[1];
      // 生成输出路径并保存图片
      const outputPath = path.join(__dirname, `${sheetName}-img-${index}.${ext}`);
      fs.writeFileSync(outputPath, img.data);
      
      // 可选:输出图片所在单元格地址
      const cellAddr = XLSX.utils.encode_cell(img.r.tl);
      console.log(`已提取图片:${outputPath},位于单元格${cellAddr}`);
    });
  }
});

2. exceljs

功能更全面的Excel处理库,API设计更直观,支持精准定位图片所在单元格。

安装依赖

npm install exceljs

提取代码

const ExcelJS = require('exceljs');
const fs = require('fs');
const path = require('path');

async function extractExcelImages() {
  const workbook = new ExcelJS.Workbook();
  await workbook.xlsx.readFile('your-file.xlsx');

  // 遍历每个工作表
  for (const worksheet of workbook.worksheets) {
    // 遍历工作表内所有图片
    worksheet.eachImage(img => {
      // 生成输出路径并保存图片
      const outputPath = path.join(__dirname, `${worksheet.name}-img-${img.index}.${img.extension}`);
      fs.writeFileSync(outputPath, img.imageBuffer);
      
      // 转换为常规单元格地址(行号从1开始)
      const cellAddr = `${ExcelJS.utils.colToName(img.topLeft.col)}${img.topLeft.row + 1}`;
      console.log(`已提取图片:${outputPath},位于单元格${cellAddr}`);
    });
  }
}

// 执行提取
extractExcelImages().catch(err => console.error('提取失败:', err));

注意事项

  • 上述方案仅支持.xlsx格式文件,.xls格式需额外处理
  • 图片数据会被保存为本地文件,可根据需求调整存储逻辑

内容的提问来源于stack exchange,提问作者John Lerry Samson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:43:14