如何在谷歌电子表格中检查单元格的类型
How to check the type of cell in google spreadsheet?
我使用的是谷歌脚本,我想检查一个单元格的类型,如果它是字符串,如果是数值。做点别的。
我找不到像isString或isText这样的函数。
这是我的代码,typeof没有检测到单元格包含数字
function Results() {
var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
var pred = activeSheet.getSheetByName("Copy of Predictions");
var real = activeSheet.getSheetByName("16 Results");
var realRes = real.getRange("B7:B61");
var realVal = realRes.getValues();
var cell, cellValue, row, col;
for(col=2;col<16;col++){
var predRes = pred.getRange(7, col, realVal.length);
var predVal = predRes.getValues();
for(row=0;row<predVal.length;row++){
if(predVal[row] == ""){
continue;
}else if(typeof predVal[row] === "number"){
if((predVal[row][0] == realVal[row][0]) && (predVal[row+1][0] == realVal[row+1][0])){
cell = pred.getRange(col, 3);
cellValue = cell.getValue();
cell.setValue(cellValue + 15);
}else{
if(((predVal[row][0] - predVal[row+1][0]) < 0) && ((realVal[row][0] - realVal[row+1][0]) < 0)){
cell = pred.getRange('B3');
cellValue = cell.getValue();
cell.setValue(cellValue + 5);
}else if(((predVal[row][0] - predVal[row+1][0]) > 0) && ((realVal[row][0] - realVal[row+1][0]) > 0)){
cell = pred.getRange('B3');
cellValue = cell.getValue();
cell.setValue(cellValue + 5);
}else if(((predVal[row][0] - predVal[row+1][0]) == 0) && ((realVal[row][0] - realVal[row+1][0]) == 0)){
cell = pred.getRange('B3');
cellValue = cell.getValue();
cell.setValue(cellValue + 5);
}
}
row++;
}else{
continue;
}
}
}
};
如果要检查单元格或范围的数字格式,可以使用getNumberFormat()
或getNumberFormats()
方法。注意:一个末端有一个"s",另一个没有。第二个是多个单元格格式的二维数组。如果只想检查一个单元格,请使用单数形式。该方法适用于范围,因此您首先需要获得对要检查的单元格或范围的引用。
谷歌文档-getNumberFormats()
如果您想在代码中计算数据的数据类型,可以使用typeof()
。
Mozilla JavaScript文档-类型
在某些情况下,JavaScript会根据使用情况将一种数据类型强制转换为另一种。
即使名称是"getNumberFormats()",您仍然可以检查文本。但是为文本返回的值是一个空字符串。您可以使用此测试函数来验证单元格的数字格式是否设置为纯文本格式。
function test() {
var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
var theRange = activeSheet.getRange("A2");
var theType = theRange.getNumberFormat();
Logger.log(theType);
if (theType === "") {
Logger.log("It's text");
};
};
您的代码如下:
}else if(predVal[row].getNumberFormat == "number"){
应为:
}else if(predVal[row].getNumberFormat == ""){
如果您正在查找sheet function
,请查看ISNUMBER()
,它似乎知道文本是否可以转换为数字。
如果你在js the
代码:
if (isNaN(parseFloat(your_data))==false)
似乎可以检测是否可以将string
转换为number
。
相关文章:
- 使用jquery在单击时在单元格中输入值
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 可以'我不明白为什么;t将行和单元格添加到表中
- 如何在谷歌电子表格中检查单元格的类型
- 检查表格行中的单元格是否等于0,如果等于,则隐藏行
- 找到行跨度,然后检查第一个单元格是否有文本
- 检查日期并使用谷歌脚本编辑谷歌表格中的相邻单元格
- 如何检查表格单元格内的控件
- 检查表格单元格中存在的元素类型
- 复制并粘贴Microsoft Javascript示例以检查单元格中的值,但无法正常工作
- 如何检查与单击的表单元格相邻的值,并在该值为“0”时替换该值;空”;
- JointJS/Rappid更改检查器/不使用检查器的单元格模型值
- 检查数据库中是否存在单元格编号
- 检查表格行单元格中的内容
- 如何检查在jQuery是一个表格单元格溢出的宽度
- 检查表单元格块是否有数据,如果有则更改样式
- 我怎么能检查如果表单元格是空的extjs
- 检查表格的单元格是否包含某个表单
- jQuery和CoffeeScript:检查值是否是表单元格值的子字符串的更优雅的方法是什么
- 函数检查第一个空白单元格