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

如何将电子表格中筛选后的行(含格式)复制到另一个表格

解决筛选行复制并保留格式的问题

原脚本仅复制了单元格的值,完全没有处理格式信息,所以会丢失背景色等样式。要同时保留数据和格式,需要使用copyTo()方法直接复制整行的内容与样式,具体修改如下:

修改后的脚本

var ss = SpreadsheetApp.getActive();
var sourceSheet = ss.getSheetByName("main");
var destSheet = ss.getSheetByName("目标表"); // 替换为你的目标表格名称

var dataRange = sourceSheet.getDataRange();
var totalRows = dataRange.getNumRows();
var totalCols = dataRange.getNumColumns();

// 遍历源表每一行,筛选符合条件的行
for (var rowIndex = 1; rowIndex <= totalRows; rowIndex++) {
  var firstCellValue = sourceSheet.getRange(rowIndex, 1).getValue().toString();
  if (firstCellValue.startsWith("1")) {
    // 获取当前符合条件的行范围
    var sourceRowRange = sourceSheet.getRange(rowIndex, 1, 1, totalCols);
    // 计算目标表的插入行位置
    var destRowPos = destSheet.getLastRow() + 1;
    // 复制整行,包含所有格式(背景色、字体、对齐方式等)
    sourceRowRange.copyTo(
      destSheet.getRange(destRowPos, 1),
      SpreadsheetApp.CopyPasteType.PASTE_ALL,
      false
    );
  }
}

关键说明

  • 使用SpreadsheetApp.CopyPasteType.PASTE_ALL参数,会复制单元格的所有内容与格式,包括你重点关注的背景色、字体样式、单元格对齐方式等。
  • 遍历源表每一行时,先检查第一列值是否符合条件,符合则直接复制整行到目标表的末尾,确保数据和格式完全一致。
  • 如果源表数据量极大,遍历可能会有轻微延迟,但对于常规表格规模,这个方法高效且直接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:17:12