Google apps script 有没有办法将文本框或其他小部件格式化为货币?还是格式有两个小数?
我希望在数据进入谷歌工作表之前对其进行格式化。我想将packageABox中的文本条目格式化为currency,然后/在它进入谷歌表单时。有没有一种方法可以设置货币的格式,或者至少设置货币从文本框到目的地时始终保留两位小数?谢谢Google apps script 有没有办法将文本框或其他小部件格式化为货币?还是格式有两个小数?,google-apps-script,Google Apps Script,我希望在数据进入谷歌工作表之前对其进行格式化。我想将packageABox中的文本条目格式化为currency,然后/在它进入谷歌表单时。有没有一种方法可以设置货币的格式,或者至少设置货币从文本框到目的地时始终保留两位小数?谢谢 function doGet(e) { var app = UiApp.createApplication() var panel = app.createVerticalPanel(); var grid = app.createGrid(70, 1).setId('
function doGet(e) {
var app = UiApp.createApplication()
var panel = app.createVerticalPanel();
var grid = app.createGrid(70, 1).setId('grid');
var packageALbl = app.createLabel('Bid Pricing: Enter your pricing for Package A *').setId('packageALbl').setVisible(false);
var packageABox = app.createTextBox().setName('packageABox').setId('packageABox').setVisible(false);
grid.setWidget(35, 0, packageALbl);
grid.setWidget(36, 0, packageABox);
app.getElementById('packageABox').setValue('');
var button = app.createButton('Submit').setId('Submit').setVisible(false);
var submitHandler = app.createServerClickHandler('submit');
submitHandler.addCallbackElement(grid);
button.addClickHandler(submitHandler);
panel.add(grid)
app.add(panel)
return app;
}
function submit(e) {
//Write the data in the text boxes back to the Spreadsheet
var app = UiApp.getActiveApplication();
var doc = SpreadsheetApp.openById('0AhvH2AsQokNfdDFQUVUxM3hqLVhSdnVmUXdrRUlmYXc');
var packageA = e.parameter.packageABox
var range = s.getRange(lastRow+1,2,1,1).setValues([[packageA]]);
return app;
}
在提交中自己设置格式。没有uiapp元素会自动执行此操作。您可以使用javascript函数来实现此结果,Google Apps脚本中还有一个有用的方法。另请参见 例如:
function test(){
Logger.log(toCurrency(345678.1));
}
function toCurrency(val){
var outString= Utilities.formatString('%2.2f', Number(val));
return '$'+outString;
}
请注意,如果您使用e.parameter.xxx在处理程序函数中获取此值,则该值将是字符串,而不是数字
要处理此问题,只需进行如下更改:
toCurrencyNumber'345678.1';//将参数转换为数字在它到达工作表之前格式化它的原因是什么?是否要在Ui中重新显示?如果我们只是先在Sheets列中手动设置数字格式,那么所有未来的值都将采用该格式。