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

如何在Google Apps Script邮件报表中设置表格居中与SLA%列格式化

解决Google Apps Script邮件报表的两个问题:表格居中与百分比格式

问题分析

原代码存在两处核心问题:

  • HTML样式语法错误(如style = bgcolor = "Black"的不规范写法、表头标签嵌套错误)导致表格内容无法居中;
  • 未对SLA %列做百分比格式化处理,直接输出原始数值。

修改方案

1. 表格内容居中对齐

  • 修正HTML样式的语法,使用标准CSS内联写法;
  • 给表格添加整体样式(边框合并、整体居中),同时给所有单元格设置text-align: center实现内容居中;
  • 修正表头标签嵌套错误,直接用<th>作为表头单元格。

2. SLA %列百分比格式化

  • 先确定SLA %列在表格中的索引(从0开始计数,比如第4列对应索引3,可根据实际调整);
  • 遍历到该列时,将数值格式化为带百分号的字符串,保留两位小数(可按需调整精度)。

修改后的完整代码

function getData() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = sheet.getSheetByName('Summary');
  var datavalues = sheet1.getDataRange().getValues();
  // 替换为你的SLA%列索引(从0开始计数),示例为第4列
  const slaColumnIndex = 3;

  // 初始化HTML,添加表格整体样式
  var html = "Dear All,<br><br>Please find the daily report as below.<br><br>" + 
             '<table style="border-collapse: collapse; margin: 0 auto;">';

  if (datavalues.length > 0) {
    for (var i = 0; i < datavalues.length; i++) {
      // 表头行背景样式
      var trStyle = i === 0 ? 'style="background-color: black;"' : '';
      html += `<tr ${trStyle}>`;
      
      for (var j = 0; j < datavalues[i].length; j++) {
        var cellValue = datavalues[i][j];
        // 处理表头单元格
        if (i === 0) {
          html += Utilities.formatString(
            '<th style="background-color: orange; border: 2px solid black; text-align: center; padding: 8px; color: white;">%s</th>', 
            cellValue
          );
        } else {
          // 格式化SLA%列数值为百分比
          if (j === slaColumnIndex && typeof cellValue === 'number') {
            cellValue = Utilities.formatString("%.2f%%", cellValue * 100);
          }
          // 数据单元格样式
          html += Utilities.formatString(
            '<td style="border: 2px solid black; text-align: center; padding: 8px;">%s</td>', 
            cellValue
          );
        }
      }
      html += '</tr>';
    }
  }
  html += '</table>';
  return html;
}

function sendEmail(){
  MailApp.sendEmail({
    to:"xxxxx.xxxx@xxxxxx.com",
    subject: "Daily Report",
    htmlBody: getData()
  });
}

关键改动说明

  • 表格添加border-collapse: collapse让边框合并更美观,margin: 0 auto实现表格在邮件中居中显示;
  • 所有单元格添加padding: 8px优化内容间距,提升可读性;
  • 通过slaColumnIndex灵活指定SLA%列位置,使用Utilities.formatString统一格式为带两位小数的百分比;
  • 表头添加color: white让黑色背景上的文字更清晰(可按需移除)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:37:09