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

Google Sheets单个单元格设置数值与后缀不同字号并按需对数值取整

Google Sheets 单单元格双字号实现方案

核心代码

function setDualFontSizeCell() {
  // --------------- 以下为可配置参数 ---------------
  const INPUT_SHEET_NAME = "日志列表"; // 输入数据所在工作表名
  const OUTPUT_SHEET_NAME = "展示表"; // 输出结果的目标工作表名
  // 列配置:数组索引对应输入表的列序号(A列为0,B列为1,以此类推)
  // 每个配置项格式为 [四舍五入精度, 后缀文本],精度填null则不做四舍五入
  const COLUMN_CONFIG = [
    [null, " 英里"], // 输入表A列:行驶英里数,不四舍五入,后缀为 英里
    [2, " MPG"], // 输入表B列:每加仑英里数,保留2位小数,后缀为 MPG
    // 有更多列可继续按格式添加
  ];
  // --------------- 配置参数结束 ---------------

  // 预定义固定样式,不继承原有文本样式
  const numberStyle = SpreadsheetApp.newTextStyle()
    .setFontSize(15)
    .build();
  const suffixStyle = SpreadsheetApp.newTextStyle()
    .setFontSize(8)
    .setItalic(true)
    .build();

  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const inputSheet = ss.getSheetByName(INPUT_SHEET_NAME);
  // 输出表不存在则自动创建
  const outputSheet = ss.getSheetByName(OUTPUT_SHEET_NAME) || ss.insertSheet(OUTPUT_SHEET_NAME);
  const rawValues = inputSheet.getDataRange().getValues();
  // 取配置列数和实际数据列数的最小值,避免数组越界
  const maxCol = Math.min(COLUMN_CONFIG.length, rawValues[0].length);

  // 批量生成富文本内容
  const richTextResults = rawValues.map(row => {
    const outputRow = [];
    for (let colIdx = 0; colIdx < maxCol; colIdx++) {
      const cellValue = row[colIdx];
      const [precision, suffix] = COLUMN_CONFIG[colIdx];
      // 空值直接返回空
      if (cellValue === "" || cellValue === null) {
        outputRow.push(SpreadsheetApp.newRichTextValue().setText("").build());
        continue;
      }
      // 按配置处理数值精度
      let numStr;
      if (typeof cellValue === "number" && precision !== null) {
        numStr = cellValue.toFixed(precision);
      } else {
        numStr = String(cellValue);
      }
      const fullText = numStr + suffix;
      // 生成单单元格双样式富文本
      const richText = SpreadsheetApp.newRichTextValue()
        .setText(fullText)
        .setTextStyle(0, numStr.length, numberStyle)
        .setTextStyle(numStr.length, fullText.length, suffixStyle)
        .build();
      outputRow.push(richText);
    }
    return outputRow;
  });

  // 批量写入输出表
  const outputRange = outputSheet.getRange(1, 1, richTextResults.length, maxCol);
  outputRange.setRichTextValues(richTextResults);
}

使用说明

  • 打开目标Google表格,点击顶部菜单「扩展程序」→「Apps Script」进入脚本编辑器
  • 删除编辑器默认生成的空代码,粘贴上述完整代码
  • 根据你的业务需求修改代码开头的可配置参数,包括输入输出工作表名、各列对应的精度和后缀规则
  • 点击编辑器顶部保存按钮,为项目命名后点击运行按钮,按照系统提示完成授权即可执行
  • 若输入表数据更新,重新运行脚本即可刷新输出表内容,脚本会覆盖输出表原有内容,执行前建议做好备份

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:48:02