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

如何将多行数据转换为单列并保留Images?

解决Google Sheets多行转单列并同步图片的问题

问题描述

已找到多种多行数据转单列的方案,但无法同步转换包含的图片内容。

数据集与预期效果如下:
数据集
预期效果

解决方案:使用Google Apps Script

以下脚本可实现带图片的多行转单列同步转换:

function convertRowsToSingleColumnWithImages() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const dataRange = sheet.getDataRange();
  const values = dataRange.getValues();
  const images = dataRange.getImages();
  
  const outputSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("转换结果");
  let rowIndex = 1;
  
  // 遍历原表每行数据
  values.forEach((row, rowNum) => {
    // 遍历当前行的每个单元格
    row.forEach((cellValue, colNum) => {
      // 写入单元格内容
      outputSheet.getRange(rowIndex, 1).setValue(cellValue);
      
      // 匹配当前单元格的图片
      const targetImages = images.filter(img => {
        const imgCell = img.getAnchorCell();
        return imgCell.getRow() === rowNum + 1 && imgCell.getColumn() === colNum + 1;
      });
      
      // 复制图片到目标单元格
      if (targetImages.length > 0) {
        const img = targetImages[0];
        const newImg = outputSheet.insertImage(
          img.getBlob(),
          1,
          rowIndex,
          img.getWidth(),
          img.getHeight()
        );
        newImg.setAnchorCell(outputSheet.getRange(rowIndex, 1));
      }
      
      rowIndex++;
    });
  });
  
  SpreadsheetApp.getUi().alert("转换完成,结果已保存到新工作表!");
}

使用步骤

  • 打开目标Google Sheets文档
  • 点击顶部菜单「扩展程序」→「Apps Script」
  • 删除默认代码,粘贴上述脚本
  • 点击「保存」,命名项目(如「行转列同步图片」)
  • 点击运行按钮,首次运行需完成权限授权
  • 运行结束后,自动生成名为「转换结果」的新工作表,包含同步图片的单列数据

脚本说明

  • getImages():获取工作表内所有图片的位置、尺寸、Blob数据等信息
  • 逐行逐列遍历原表,同步写入单元格内容与对应图片
  • setAnchorCell():确保图片锚定目标单元格,单元格调整时图片同步适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:12:36