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

更新Google Sheets脚本:为热图表格动态添加单元格批注

需求说明:动态为Google Sheets热图单元格添加多字段批注

现有Google Sheets脚本可将指定行、列及DBH数据复制到热图表格,现需更新该流程,参照示例单元格批注样式,为对应单元格动态添加ID、DBH及其他潜在数据字段。

我已基于原回答完成更新,添加了变量替换和注释,效果良好,最终代码如下:

function test1() {
  try {
    // 数据列顺序要求:行号、列号、DBH、ID、可选字段1...
    let MY_LAST_COL = 4;  // 填写数据区域的最后一列编号
    let MY_ROWS_COLUMNS_TEXT = 6; // 热图中显示"行号&列号"文本的列编号
    let MY_ROWS_COLUMNS_NBR = 7; // 热图中开始显示列号的起始列编号
    let spread = SpreadsheetApp.getActiveSpreadsheet(); 
    let sheet = spread.getSheetByName("mysitenotes"); // 填写目标工作表名称
    // 获取数据区域(排除表头)
    let values = sheet.getRange(2,1,sheet.getLastRow()-1,MY_LAST_COL).getValues();  
    // 提取所有行号并去重
    let rows = values.map( row => row[0] );  
    rows = [...new Set(rows)];
    // 计算最大行号
    let maxRow = 0;
    rows.forEach( row => { maxRow = row > maxRow ? row : maxRow } );
    // 提取所有列号并去重
    let columns = values.map( row => row[1] ); 
    columns = [...new Set(columns)]
    // 计算最大列号
    let maxColumn = 0;
    columns.forEach( column => { maxColumn = column > maxColumn ? column : maxColumn } );
    // 初始化DBH数据数组和批注数组
    let dbh = [];
    let notes = []; 
    for( let i=0; i<maxRow; i++ ) {
      dbh.push(Array(maxColumn).fill(""));
      notes.push(Array(maxColumn).fill(""));  
      dbh[i].unshift(i+1);  // 添加行号前缀
    }
    // 填充DBH数据和批注内容
    values.forEach( row => {
        let i = row[0]-1;
        let j = row[1];
        dbh[i][j] = row[2];
        // 自定义批注格式:可根据需要添加更多字段
        notes[i][j-1] =
        "ID: "+row[3]+
        "\nDBH: "+row[2];  // 批注内容结束
      }
    );
    console.log(notes);
    // 添加热图表头
    dbh.unshift(Array(maxColumn).fill(0));
    dbh[0].forEach( (cell,index) => dbh[0][index] = index+1 );
    dbh[0].unshift("行号&列号");
    // 将DBH数据写入热图区域
    sheet.getRange(1,MY_ROWS_COLUMNS_TEXT,dbh.length,dbh[0].length).setValues(dbh);
    // 将批注应用到对应单元格
    sheet.getRange(2,MY_ROWS_COLUMNS_NBR,notes.length,notes[0].length).setNotes(notes); 
  }
  catch(err) {
    console.log("test函数执行错误: "+err)
  }
}

关键更新说明

  • 新增可配置变量,方便快速调整数据列范围、热图起始位置
  • 批注支持灵活扩展:如果需要添加更多字段,只需在notes[i][j-1]的字符串中继续拼接,比如"\n可选字段1: "+row[4]即可
  • 保留原逻辑核心功能的同时,提升了代码的可维护性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:07:48