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

如何对比liste01与liste02列表,在COsheet末尾插入指定行?

需求说明
  • 对比两个列表:liste01(提取自工作表「0_LISTE PROJETS」的第2列,从第2行开始)和liste02(提取自工作表「1_CONCEPTION 2D/3D」的第1列,从第2行开始)
  • 若liste02中的元素不在liste01内,为每个符合条件的元素在「1_CONCEPTION 2D/3D」工作表的最后一行之后插入5行
修正后的完整代码
function CONCEPTION_004() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const PROsheet = ss.getSheetByName("0_LISTE PROJETS");
  const COsheet = ss.getSheetByName("1_CONCEPTION 2D/3D");

  // 提取数据并生成目标列表
  const valuePRO = PROsheet.getRange(2, 1, PROsheet.getLastRow() - 1, 3).getValues();
  const liste01 = valuePRO.map(row => row[1]); // 从PROsheet第2列提取数据

  const valueCO = COsheet.getRange(2, 1, COsheet.getLastRow() - 1, 1).getValues();
  const liste02 = valueCO.map(row => row[0]); // 从COsheet第1列提取数据

  // 转换为Set优化查找效率
  const proElementSet = new Set(liste01);

  // 筛选出liste02中不在liste01里的元素
  const missingElements = liste02.filter(element => !proElementSet.has(element));

  // 批量插入行
  if (missingElements.length > 0) {
    const lastRow = COsheet.getLastRow();
    const totalInsertRows = missingElements.length * 5;
    COsheet.insertRowsAfter(lastRow, totalInsertRows);

    // 若需给插入的行填充特定内容,可在此添加逻辑
    // 例如:循环填充每行的固定内容
  }
}
关键修正与优化
  • 修复原代码map函数无返回值的问题,正确生成liste01和liste02数组
  • 使用Set存储liste01元素,大幅提升元素存在性检查的效率
  • 批量计算并插入所需行数,减少对工作表的操作次数(谷歌Apps Script中工作表操作耗时,批量处理更高效)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:52:41