Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 有没有办法将文本框或其他小部件格式化为货币?还是格式有两个小数?_Google Apps Script - Fatal编程技术网

Google apps script 有没有办法将文本框或其他小部件格式化为货币?还是格式有两个小数?

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('

我希望在数据进入谷歌工作表之前对其进行格式化。我想将packageABox中的文本条目格式化为currency,然后/在它进入谷歌表单时。有没有一种方法可以设置货币的格式,或者至少设置货币从文本框到目的地时始终保留两位小数?谢谢

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列中手动设置数字格式,那么所有未来的值都将采用该格式。