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

使用Apps Script修改Google Form同步至Google Doc页眉的字体样式

解决方案

你当前的代码仅操作了文档正文内容,没有调用页眉相关API,也没有对替换后的文本设置格式,按以下修改即可实现需求:

function autofillGoogleDocfromForm(e) {
  var timestamp = e.values[0];
  var firstName = e.values[1];
  var lastName = e.values[2];
  var position = e.values[3];
  var building = e.values[4];
  var phoneNumber = e.values[5];
  var email = e.values[6];
  var address = e.values [7];

  var templateFile = DriveApp.getFileById("1vCOrwCZAAQiiZmLgPi_74xy65ws8u1DqRW05eukgisI");
  var templateResponseFolder = DriveApp.getFolderById("1rFCugcmL8uLMeBwQSZ8FJ4Sol4bmpwa6");

  var copy = templateFile.makeCopy(lastName + ' , ' + firstName, templateResponseFolder);
  var doc = DocumentApp.openById(copy.getId()); 

  // 获取页眉对象
  var header = doc.getHeader();
  // 替换页眉中的占位符
  header.replaceText("{{FirstName}}",firstName);
  header.replaceText("{{LastName}}",lastName);
  header.replaceText("{{Position}}",position);
  header.replaceText("{{Building}}",building);
  header.replaceText("{{phoneNumber}}", phoneNumber);
  header.replaceText("{{email}}", email);
  header.replaceText("{{Address}}", address);

  // 自定义各元素的字体、字号,可按需修改参数
  const styleConfig = {
    firstName: {fontFamily: "微软雅黑", fontSize: 14},
    lastName: {fontFamily: "微软雅黑", fontSize: 14},
    position: {fontFamily: "宋体", fontSize: 12},
    building: {fontFamily: "宋体", fontSize: 12},
    phoneNumber: {fontFamily: "Arial", fontSize: 10},
    email: {fontFamily: "Arial", fontSize: 10},
    address: {fontFamily: "宋体", fontSize: 10}
  }

  // 为对应内容设置样式
  let range = header.findText(firstName);
  if (range) {
    let text = range.getElement().asText();
    text.setFontFamily(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.firstName.fontFamily);
    text.setFontSize(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.firstName.fontSize);
  }
  range = header.findText(lastName);
  if (range) {
    let text = range.getElement().asText();
    text.setFontFamily(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.lastName.fontFamily);
    text.setFontSize(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.lastName.fontSize);
  }
  range = header.findText(position);
  if (range) {
    let text = range.getElement().asText();
    text.setFontFamily(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.position.fontFamily);
    text.setFontSize(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.position.fontSize);
  }
  range = header.findText(building);
  if (range) {
    let text = range.getElement().asText();
    text.setFontFamily(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.building.fontFamily);
    text.setFontSize(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.building.fontSize);
  }
  range = header.findText(phoneNumber);
  if (range) {
    let text = range.getElement().asText();
    text.setFontFamily(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.phoneNumber.fontFamily);
    text.setFontSize(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.phoneNumber.fontSize);
  }
  range = header.findText(email);
  if (range) {
    let text = range.getElement().asText();
    text.setFontFamily(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.email.fontFamily);
    text.setFontSize(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.email.fontSize);
  }
  range = header.findText(address);
  if (range) {
    let text = range.getElement().asText();
    text.setFontFamily(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.address.fontFamily);
    text.setFontSize(range.getStartOffset(), range.getEndOffsetInclusive(), styleConfig.address.fontSize);
  }

  // 若仍需要同步修改正文内容,保留原有body替换代码即可
  var body = doc.getBody();
  body.replaceText("{{FirstName}}",firstName);
  body.replaceText("{{LastName}}",lastName);
  body.replaceText("{{Position}}",position);
  body.replaceText("{{Building}}",building);
  body.replaceText("{{phoneNumber}}", phoneNumber);
  body.replaceText("{{email}}", email);
  body.replaceText("{{Address}}", address);

  doc.saveAndClose();
}

注意事项

  • 可自行修改styleConfig内的字体家族名称和字号数值,所有Google Doc支持的字体都可以直接填写
  • 如果设置了首页不同、奇偶页不同的页眉,需要对应调用getFirstPageHeader()、getEvenPageHeader()分别处理对应页眉的内容和样式
  • 如果模板页眉已经预设了部分格式,替换内容后默认会继承原有格式,上述代码会覆盖对应文本范围的字体和字号设置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:06:04