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

调整Google Sheet App Script文章拆分逻辑:第七个H2后合并剩余内容

解决App Script文章拆分的列数限制问题

需求说明

  • 已实现:第一列存放H1标题,第二列起依次对应每个H2标题及其下方所有段落
  • 待修正:要求处理到第7个H2时,将该H2及后续所有内容合并存入最后一列,但当前脚本仍会把第7个H2拆分为单独列

修正后的脚本

function splitArticleToColumns() {
  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const rawArticle = activeSheet.getRange("A1").getValue(); // 假设原始文章在A1单元格
  const allLines = rawArticle.split("\n");
  const resultColumns = [];
  let currentSectionContent = [];
  let h2Counter = 0;
  let isBeyondSeventhH2 = false;

  allLines.forEach((line, index) => {
    if (line.startsWith("# ")) {
      // 提取H1存入第一列
      resultColumns.push([line.replace("# ", "")]);
    } else if (line.startsWith("## ") && !isBeyondSeventhH2) {
      h2Counter++;
      // 先把上一个H2的段落内容存入结果
      if (currentSectionContent.length > 0) {
        resultColumns.push([currentSectionContent.join("\n")]);
        currentSectionContent = [];
      }
      // 判断是否是第7个H2
      if (h2Counter === 7) {
        isBeyondSeventhH2 = true;
        // 合并第7个H2及所有剩余内容
        const remainingContent = allLines.slice(index).join("\n");
        resultColumns.push([remainingContent]);
      } else {
        // 存入当前H2标题
        resultColumns.push([line.replace("## ", "")]);
      }
    } else {
      if (isBeyondSeventhH2) {
        // 追加到最后一列的内容里
        resultColumns[resultColumns.length - 1][0] += "\n" + line;
      } else {
        // 收集当前H2下的段落
        currentSectionContent.push(line);
      }
    }
  });

  // 处理未完成的段落(未触发第7个H2的情况)
  if (currentSectionContent.length > 0 && !isBeyondSeventhH2) {
    resultColumns.push([currentSectionContent.join("\n")]);
  }

  // 写入工作表,从B1开始输出
  activeSheet.getRange(1, 2, resultColumns.length, 1).setValues(resultColumns);
}

核心修改点

  • 新增isBeyondSeventhH2状态标记,用于判断是否进入合并剩余内容的阶段
  • 当检测到第7个H2时,直接截取从该H2开始的所有剩余内容,合并后存入最后一列,不再继续拆分
  • 调整段落处理逻辑:进入合并阶段后,所有后续内容直接追加到最后一列,不再单独列存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:43:15