javascript - 带有正数/负数的 Utilities.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);
结果formattedData
看起来像:
+12.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");
笔记:
- 这是一个简单的示例脚本。所以请根据您的实际情况进行修改。