Javascript 为什么有些值被确认为日期?
我有一个脚本,可以在谷歌表单的一列中用逗号替换点。Javascript 为什么有些值被确认为日期?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个脚本,可以在谷歌表单的一列中用逗号替换点。 函数checkItNow(){ const ss=SpreadsheetApp.getActiveSpreadsheet(); const sheet=ss.getSheetByName('TESTSCRIPTS'); 让rangeReplace=sheet.getRange(1,2,sheet.getLastRow()); 设valsReplace=rangeReplace.getValues().map(a=>a[0]); 让newVal
函数checkItNow(){
const ss=SpreadsheetApp.getActiveSpreadsheet();
const sheet=ss.getSheetByName('TESTSCRIPTS');
让rangeReplace=sheet.getRange(1,2,sheet.getLastRow());
设valsReplace=rangeReplace.getValues().map(a=>a[0]);
让newVals=valsReplace.map(dots=>dots.toString().replace('\.','\',');
设newValsArr=[];
对于(i=0;i
有时候在脚本运行之后,我会有约会
为什么会这样?我错在哪里?以及如何修复它?默认格式是自动的,这意味着电子表格会尝试找出适合您的格式。但是是的,你的权利有时会得到错误的答案。我经常使用下面的函数来查看活动范围格式,以便了解当前的数字格式。该功能还允许您根据需要设置新的数字格式。要使用它,您只需选择要查看格式的单元格范围。注意:它不处理非连续单元格选择。这是留给读者的练习
function getandSetActiveRangeFormats() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getActiveRange();
var fA=rg.getNumberFormats();
var html='<style>th,td{border:1px solid black;}</style><table><tr><th>Item</th><th>A1 Notation</th><th>Number Format</th><th>Enter Format</th><th>Set Format</th></tr>';
var item=1;
var row=rg.getRow();
var col=rg.getColumn();
fA.forEach(function(r,i){
r.forEach(function(c,j){
var txt=Utilities.formatString('<input type="text" id="RC-%s-%s" />',row+i,col+j);
var btn=Utilities.formatString('<input type="button" value="Set Form" onClick="setFormat(%s,%s);" />',row+i,col+j);
html+=Utilities.formatString('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',item++,sh.getRange(row + i,col + j).getA1Notation(),fA[i][j],txt,btn);
});
});
html+='</table><input type="button" value="Exit" onClick="google.script.host.close();" />';
html+='<script>function setFormat(row,col){var f=document.getElementById("RC-"+row+"-"+col).value;google.script.run.setFormat(row,col,f);}</script>';
var ui=HtmlService.createHtmlOutput(Utilities.formatString(html));
SpreadsheetApp.getUi().showModelessDialog(ui, "Display and Set Active Range Formats")
}
函数getandSetActiveRangeFormats(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getActiveRange();
var fA=rg.getNumberFormats();
var html='th,td{border:1px纯黑色;}ItemA1 NotationNumber formatter FormatSet Format';
var项目=1;
var row=rg.getRow();
var col=rg.getColumn();
fA.forEach(函数(r,i){
r、 forEach(函数(c,j){
var txt=Utilities.formatString(“”,行+i,列+j);
var btn=Utilities.formatString(“”,行+i,列+j);
html+=Utilities.formatString(“%s%s%s%s%s”,item++,sh.getRange(行+i,列+j).geta1符号(),fA[i][j],txt,btn);
});
});
html+='';
html+='function setFormat(row,col){var f=document.getElementById(“RC-”+row+“-”+col).value;google.script.run.setFormat(row,col,f);}';
var ui=HtmlService.createHtmlOutput(Utilities.formatString(html));
SpreadsheetApp.getUi().showModelessDialog(ui,“显示和设置活动范围格式”)
}
默认格式是自动的,这意味着电子表格会尝试找出适合您的格式。但是是的,你的权利有时会得到错误的答案。我经常使用下面的函数来查看活动范围格式,以便了解当前的数字格式。该功能还允许您根据需要设置新的数字格式。要使用它,您只需选择要查看格式的单元格范围。注意:它不处理非连续单元格选择。这是留给读者的练习
function getandSetActiveRangeFormats() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getActiveRange();
var fA=rg.getNumberFormats();
var html='<style>th,td{border:1px solid black;}</style><table><tr><th>Item</th><th>A1 Notation</th><th>Number Format</th><th>Enter Format</th><th>Set Format</th></tr>';
var item=1;
var row=rg.getRow();
var col=rg.getColumn();
fA.forEach(function(r,i){
r.forEach(function(c,j){
var txt=Utilities.formatString('<input type="text" id="RC-%s-%s" />',row+i,col+j);
var btn=Utilities.formatString('<input type="button" value="Set Form" onClick="setFormat(%s,%s);" />',row+i,col+j);
html+=Utilities.formatString('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',item++,sh.getRange(row + i,col + j).getA1Notation(),fA[i][j],txt,btn);
});
});
html+='</table><input type="button" value="Exit" onClick="google.script.host.close();" />';
html+='<script>function setFormat(row,col){var f=document.getElementById("RC-"+row+"-"+col).value;google.script.run.setFormat(row,col,f);}</script>';
var ui=HtmlService.createHtmlOutput(Utilities.formatString(html));
SpreadsheetApp.getUi().showModelessDialog(ui, "Display and Set Active Range Formats")
}
函数getandSetActiveRangeFormats(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getActiveRange();
var fA=rg.getNumberFormats();
var html='th,td{border:1px纯黑色;}ItemA1 NotationNumber formatter FormatSet Format';
var项目=1;
var row=rg.getRow();
var col=rg.getColumn();
fA.forEach(函数(r,i){
r、 forEach(函数(c,j){
var txt=Utilities.formatString(“”,行+i,列+j);
var btn=Utilities.formatString(“”,行+i,列+j);
html+=Utilities.formatString(“%s%s%s%s%s”,item++,sh.getRange(行+i,列+j).geta1符号(),fA[i][j],txt,btn);
});
});
html+='';
html+='function setFormat(row,col){var f=document.getElementById(“RC-”+row+“-”+col).value;google.script.run.setFormat(row,col,f);}';
var ui=HtmlService.createHtmlOutput(Utilities.formatString(html));
SpreadsheetApp.getUi().showModelessDialog(ui,“显示和设置活动范围格式”)
}
我从谷歌应用程序脚本中找到了更简单的解决方案
。setNumberFormat
函数checkItNow(){
const ss=SpreadsheetApp.getActiveSpreadsheet();
const sheet=ss.getSheetByName('TESTSCRIPTS');
让rangeReplace=sheet.getRange(1,2,sheet.getLastRow());
rangeReplace.setNumberFormat(“#,##.000”);
设valsReplace=rangeReplace.getValues().map(a=>a[0]);
让newVals=valsReplace.map(dots=>dots.toString().replace('\.','\',');
设newValsArr=[];
对于(i=0;i }; 代码>我从谷歌应用程序脚本中找到了更简单的解决方案.setNumberFormat
函数checkItNow(){
const ss=SpreadsheetApp.getActiveSpreadsheet();
const sheet=ss.getSheetByName('TESTSCRIPTS');
让rangeReplace=sheet.getRange(1,2,sheet.getLastRow());
rangeReplace.setNumberFormat(“#,##.000”);
设valsReplace=rangeReplace.getValues().map(a=>a[0]);
让newVals=valsReplace.map(dots=>dots.toString().replace('\.','\',');
设newValsArr=[];
对于(i=0;i }; 代码>将列格式设置为float.或纯文本..将列格式设置为float.或纯文本。。