实用程序.formatString,包含正数/负数



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

我当前的代码是:

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);

CCD_ 1的结果看起来像:

+12.1%

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

相关案例:.setNumberFormat在谷歌应用程序脚本中不起作用

在脚本中,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%被置于小区"0";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");
    

注意:

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

参考文献:

  • setNumberFormat(numberFormat(
  • setFontColor(颜色(
  • formatString(模板,args(

最新更新