【问题标题】:Utilities.formatString with positive/negative numbers带有正数/负数的 Utilities.formatString
【发布时间】:2023-03-24 04:55:01
【问题描述】:

我想以丰富的格式显示我的数字字符串数据,当数字为正数或负数时应用不同的颜色。

我当前的代码是:

var url = 'https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxx/edit#gid=xxxxxxxxx';
var spreadSheet = SpreadsheetApp.openByUrl(url);
var allSheets = spreadSheet.getSheets();
var theSheet = allSheets[1];
var lastRow = theSheet.getLastRow();
var lastColumn = theSheet.getLastColumn();
var sheetData = theSheet.getSheetValues(1, 1, lastRow, lastColumn);

var rawData = sheetData[1][1];
var calcData = sheetData[1][1] / sheetData[0][1];
var formattedData = Utilities.formatString("%+1.2f%", calcData * 100);

formattedData 的结果类似于:

+12.1%

我认为如果它以不同的颜色显示会更好,绿色字母表示正面,红色字母表示负面。

相关案例:.setNumberFormat is not working in Google Apps Script

【问题讨论】:

    标签: javascript google-apps-script


    【解决方案1】:

    在您的脚本中,formattedData 是字符串值。当您要更改字体颜色时,在这种情况下,需要将值设置为单元格。所以在这种情况下,我想提出改变单元格中字体颜色的方法。

    如果您的脚本中使用theSheet,示例脚本如下。

    示例脚本:

    var calcData = -0.1234;
    theSheet
      .getRange("A1")
      .setValue(calcData)
      .setNumberFormat('+0.00%;-0.00%;0.00')
      .setFontColor(calcData > 0 ? "green" : "red");
    
    • 在这个示例脚本中,-12.34% 被放入单元格“A1”,字体颜色为红色。

    • 使用var calcData = 0.1234;时,将+12.34%放到单元格“A1”中,字体颜色为绿色。

    • 当你想使用Utilities.formatString时,示例脚本如下。

        var calcData = -0.1234;
        var formattedData = Utilities.formatString("%+1.2f%", calcData * 100);
        theSheet
          .getRange("A1")
          .setValue(formattedData)
          .setFontColor(calcData > 0 ? "green" : "red");
      

    注意:

    • 这是一个简单的示例脚本。所以请根据您的实际情况进行修改。

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 2019-07-21
      相关资源
      最近更新 更多