【问题标题】:Formatting Cells with a Script使用脚本格式化单元格
【发布时间】:2014-05-08 01:46:39
【问题描述】:

我正在尝试在 Google 表格中编写一个脚本:

  • 将我的每周幻想统计数据与我联盟中的所有其他球队进行比较
  • 确定我在每个统计类别中是否会赢、输或并列
  • 计算每个对手的最终得分

给定以下电子表格:

我有以下功能开始接近,但不完全在那里。

function onEdit() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet2');

  var myStats = sheet.getRange('b2:k2');
  var myVals = myStats.getValues();

  var opps = sheet.getRange('b4:k');
  var oppsVals = opps.getValues();

  for (var i = 0; i <= 11; i++) {

    for (var x in oppsVals[i]){

      if (oppsVals[i][x] > myVals[0][x]) {
        // make opponent cell green
      } else if (oppsVals[i][x] == myVals[0][x]) {
        // make opponent cell gray
      } else {
        // make opponent cell red
      }
    }

    // calculate score (i.e. 6-3-1, 7-3-0, etc)

  }

};

如果函数通过第 4 行并比较统计数据,则 B、C、D、E、G、I、J、K 列中的对手单元格将是绿色的(因为他们赢了)。 F 列是红色的(因为我赢了),H 列是灰色的(领带)。

L 列将填充最终得分:1-8-1(opp 赢,我赢,平局)

您可能已经注意到,J 列和 K 列中的另一个皱纹被确定为以较低的价值获胜。

感谢任何帮助!

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    我能够使用以下功能完成这项工作。希望这对以后偶然发现它的人有用。

    function onEdit() {
    
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName('Sheet2');
    
      var myStats = sheet.getRange('b2:k2');
      var myVals = myStats.getValues();
    
      var opps = sheet.getRange('b4:k');
      var oppsVals = opps.getValues();
    
      for (var i = 0; i <= 10; i++) {
    
        var wins = [];
        var losses = [];
        var ties = [];
    
        for (var x in oppsVals[i]){
    
          var alphas = ["b","c","d","e","f","g","h","i","j", "k", "l"];
          var nums = ['4','5','6','7','8','9','10','11','12','13','14'];
    
          var cell = alphas[x] + nums[i];
    
          if ( alphas[x] == 'j' || alphas[x] == 'k' ) {
    
              if (oppsVals[i][x] < myVals[0][x]) {
                sheet.getRange(cell).setFontWeight('normal');
                losses.push(cell);
              } else if (oppsVals[i][x] == myVals[0][x]) {
                sheet.getRange(cell).setFontStyle('italic');
                ties.push(cell);
              } else {
                sheet.getRange(cell).setFontWeight('bold');
                wins.push(cell);
              }
    
          } else {
    
              if (oppsVals[i][x] < myVals[0][x]) {
                sheet.getRange(cell).setFontWeight('bold');
                wins.push(cell);
              } else if (oppsVals[i][x] == myVals[0][x]) {
                sheet.getRange(cell).setFontStyle('italic');
                ties.push(cell);
              } else {
                sheet.getRange(cell).setFontWeight('normal');
                losses.push(cell);
              }
    
          }
    
        }
    
        var winTotal = wins.length;
        var lossesTotal = losses.length;
        var tiesTotal = ties.length;
    
        sheet.getRange("l" + nums[i]).setValue(winTotal + "-" + lossesTotal + "-" + tiesTotal);
    
        if ( winTotal > lossesTotal ) {
            sheet.getRange("l" + nums[i]).setFontWeight('bold').setBackground('green');
        }
    
        if ( winTotal < lossesTotal ) {
            sheet.getRange("l" + nums[i]).setFontWeight('bold').setBackground('red');
        }
    
        if ( winTotal == lossesTotal ) {
          if ( oppsVals[i][0] < myVals[0][0] ) {
            sheet.getRange("l" + nums[i]).setFontWeight('bold').setBackground('green');
          } else {
            sheet.getRange("l" + nums[i]).setFontWeight('bold').setBackground('red');
          }
    
        }
    
      }
    
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-26
      • 1970-01-01
      • 2019-11-26
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多