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

Google Sheets脚本优化:仅复制含数据及图片的行至目标表空白行

修改Google Sheets脚本:仅复制含数据或图片的行

原脚本会复制B12:W44的全部行(包括空白行),以下是修改后的版本,只会复制包含数据或图片的行:

function Movedata3() {
  var ss = SpreadsheetApp.getActive();
  var srcSheet = ss.getSheetByName("INVOICE");
  var dstSheet = ss.getSheetByName("HISTORICAL SALES");
  
  // 定义源数据的行列范围
  var startRow = 12;
  var endRow = 44;
  var startCol = 2; // B列对应索引
  var endCol = 23; // W列对应索引
  
  // 获取源范围的所有单元格值
  var values = srcSheet.getRange(startRow, startCol, endRow - startRow + 1, endCol - startCol + 1).getValues();
  // 收集源范围内图片所在的行(转为相对索引)
  var images = srcSheet.getImages();
  var imageRows = new Set();
  images.forEach(img => {
    var imgRow = img.getAnchorCell().getRow();
    if (imgRow >= startRow && imgRow <= endRow) {
      imageRows.add(imgRow - startRow);
    }
  });
  
  // 过滤出有数据或包含图片的行
  var filteredRows = values.filter((row, index) => {
    // 判断行是否有非空数据
    var hasData = row.some(cell => cell !== "" && cell !== null);
    // 判断行是否关联图片
    var hasImage = imageRows.has(index);
    return hasData || hasImage;
  });
  
  if (filteredRows.length === 0) return; // 无有效内容时直接退出
  
  // 获取目标工作表的下一个空白行
  var dstStartRow = dstSheet.getLastRow() + 1;
  // 将过滤后的有效行写入目标表
  dstSheet.getRange(dstStartRow, 1, filteredRows.length, filteredRows[0].length).setValues(filteredRows);
  
  // 同步复制图片到目标表对应位置
  images.forEach(img => {
    var imgRow = img.getAnchorCell().getRow();
    if (imgRow >= startRow && imgRow <= endRow) {
      var originalIndex = imgRow - startRow;
      // 找到该行在过滤后数组中的位置
      var filteredIndex = values.findIndex((row, idx) => idx === originalIndex && (row.some(cell => cell !== "" && cell !== null) || imageRows.has(idx)));
      if (filteredIndex !== -1) {
        var newImg = img.copyTo(dstSheet);
        newImg.setAnchorCell(dstSheet.getRange(dstStartRow + filteredIndex, 1));
      }
    }
  });
}

核心修改说明:

  • 行过滤逻辑:同时检查每行是否有非空数据,以及是否包含图片,确保两种类型的行都能被保留
  • 避免空白行写入:仅将过滤后的有效行写入目标工作表,不会复制原范围中的空白行
  • 图片同步处理:单独提取原范围的图片,复制到目标表对应的有效行位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:45:44