【问题标题】:Get a dynamic range in google sheets在谷歌表格中获取动态范围
【发布时间】:2019-06-06 06:05:52
【问题描述】:

我有一个函数可以获取表格的范围,然后每天通过电子邮件发送。目前它被设置为获得一个固定的范围 (G2:H38)。该过程目前有效,但每天我发送电子邮件,我都有一些空白单元格也被发送出去。我是新手,希望有人能帮我解决这个问题。

var rowData = data[i];
    var emailAddress = "example@gmail.com";
    var recipient = rowData[0];
    var yesterdayDate = rowData[5];
    var message1 = rowData[2] + yesterdayDate;
    var message2 = rowData[3]
    var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var data = sh.getRange("G2:H38").getValues();
    //var htmltable =[];
    var TABLEFORMAT = 'cellspacing="2" cellpadding="2" dir="ltr" border="1" style="width:100%;display:table;max-width:400px;table-layout:fixed;font-size:10pt;font-family:arial,sans,sans-serif;border-collapse:collapse;border:1px solid #ccc;font-weight:normal;color:black;background-color:white;text-align:center;text-decoration:none;font-style:normal;margin-top:30px'
    var htmltable = '<table ' + TABLEFORMAT +' ">';
    var tablehead = 'style="background-color:#6aa84f;color:white;';

      for (row = 0; row<data.length; row++){
        htmltable += '<tr>';
      for (col = 0 ;col<data[row].length; col++){
        if (data[row][col] === "" || 0) {htmltable += '<td>' + '' + '</td>';} 
          else
            if (row === 0)  {
              htmltable += '<th ' + tablehead +' ">' + data[row][col] + '</th>';
            }

          else {htmltable += '<td>' + data[row][col] + '</td>';}
      }
     htmltable += '</tr>';
      }

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    在您的第二个for 循环中,第一个条件捕获并附加空表格单元格以获取其中没有数据的单元格值。添加0 检查在这里没有帮助,因为如果您想匹配等于0 而不是||0 的值,您应该检查data[row][col]===0

    否则,您的代码将按预期工作并在示例Spreadsheet 上对其进行测试 - “如果 Range 中的单元格为空,则将空单元格附加到表中”。是否要过滤掉所有空单元格?

    更新

    我仍然不确定您为什么要从 HtmlTable 中过滤掉空单元格,但如果您只想显示带有数据的单元格,请稍微更改您的 if...else 语句以解决此问题:

    if (row===0&&data[0][col]!=='')  { //filter out empty header cells;
      htmltable += '<th>' + data[row][col] + '</th>';
    }else if(data[row][col]!=='') { //filter out empty entries cells
      htmltable += '<td style="border:1px solid black;">' + data[row][col] + '</td>';
    }
    

    【讨论】:

    • 感谢 Oleg,我对此很陌生,仍在学习所有语法。我将如何过滤掉空单元格?发出的电子邮件显示所有正确数据,但仍显示所有空单元格。
    • NP!我仍然不确定您要做什么(实际上,更像是为什么),但请在几分钟后查看更新的答案 - 这应该会过滤掉空单元格。
    猜你喜欢
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多