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

如何使用Google Apps Script提取单元格内图片中的文本

使用Google Apps Script提取单元格图片中的文本

你完全可以先将包含图片的单元格(或单元格内的图片)保存为图片文件,再借助Google Drive的内置OCR功能提取文本。以下是两种常见场景的实现代码:


场景1:提取单元格内嵌入的图片文本

如果图片是通过「插入>图片>放在单元格内」的方式嵌入到目标单元格中的,直接获取图片Blob即可进行OCR:

function extractImageTextFromCell() {
  // 激活当前工作表
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 指定目标单元格(替换为你的单元格位置,比如"B2")
  const targetCell = sheet.getRange("A1");
  
  // 获取单元格内的所有图片
  const images = targetCell.getImages();
  if (images.length === 0) {
    Logger.log("目标单元格中没有嵌入图片");
    return;
  }
  
  // 提取第一张图片的Blob对象
  const imageBlob = images[0].getBlob();
  
  // 在Drive中创建临时图片文件
  const tempFile = DriveApp.createFile(imageBlob);
  tempFile.setName("临时OCR识别图片");
  
  // 调用Drive API执行OCR并提取文本(zh代表中文,可改为en/ja等)
  const ocrContent = Drive.Files.export(
    tempFile.getId(),
    "text/plain",
    { ocr: true, ocrLanguage: "zh" }
  );
  
  // 打印识别结果到日志
  Logger.log("识别到的文本:\n" + ocrContent);
  
  // 自动删除临时文件(移至回收站)
  tempFile.setTrashed(true);
}

场景2:将整个单元格区域转为图片后提取文本

如果需要把整个单元格(包含背景、内容等)导出为图片再识别,用以下代码:

function extractCellAsImageText() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 指定目标单元格区域(支持多单元格,比如"A1:C3")
  const targetRange = sheet.getRange("A1");
  
  // 将单元格区域导出为PNG格式的Blob
  const imageBlob = targetRange.getAs("image/png");
  
  // 创建Drive临时文件
  const tempFile = DriveApp.createFile(imageBlob);
  
  // 执行OCR识别
  const ocrContent = Drive.Files.export(
    tempFile.getId(),
    "text/plain",
    { ocr: true, ocrLanguage: "zh" }
  );
  
  Logger.log("识别结果:\n" + ocrContent);
  
  // 清理临时文件
  tempFile.setTrashed(true);
}

关键注意事项

  1. 启用Drive API:首次运行代码前必须开启Drive API:
    • 在脚本编辑器中点击「资源>高级Google服务」
    • 找到「Drive API」,开启后点击确定
  2. 语言适配:根据图片文本语言修改ocrLanguage参数,比如英文用"en",日文用"ja"
  3. 识别准确率:确保图片文本清晰、无模糊,否则OCR结果会受影响
  4. 临时文件:代码会自动将临时文件移至回收站,若需保留可删除setTrashed(true)这一行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:41:04