[英]Data cleaning in Google Sheets using JavaScript
我一直在Google Apps脚本中制定一种清理算法,以自动修剪从pdf剥离的图纸。
我已经花了几个小时来修改我已经获得的这段代码,并且完全弄不清楚我哪里出错了。
在此问题之前,案例逻辑不是很正确,但是脚本正在通过第一个if语句,第二个循环,第二个if语句,case语句; 成功删除无用的行。 那时并没有重置i和j属性,所以情况有点怪异。
现在,我已经修复了案例逻辑,它只是循环遍历i,并且无法识别通过第一条if语句进行第二遍循环,并且我被STUMPED处理。
如果我的格式/文档很粗糙,请提前道歉; 我几乎是自学成才,很高兴欢迎所有批评!
function ytdClean() {
var app = SpreadsheetApp;
var sheet = app.getActiveSpreadsheet().getSheetByName("Sheet1");
var sheetEnd = sheet.getLastRow();
for (var i = 1; i <= sheetEnd; i++) { //1. Loop i through column A 1:sheetEnd...
var x = sheet.getRange(i, 1);
Logger.log('x = ' + x.getValue());
if (x.getValue() == '') { //...until null entry x
for (var j = x.getRow + 1; j <= sheetEnd; j++) { //2. Loop j through column A from x + (1,0)...
var y = sheet.getRange(j, 1);
var z = sheet.getRange(j + 1, 1);
Logger.log('y = ' + y.getValue());
if (y.getValue() != '') { //...until non-null entry y;
var switchVal = z.getValue();
Logger.log('z = ' + switchVal + '...');
switch (switchVal) { //3. Switch
case "001": //case: z = y + (1,0) = 001...
var a = x.getRow();
var b = y.getRow() - 1;
sheet.deleteRows(a, b - a); //...delete rows of x through y...
i = a - 1;
Logger.log("...case 001");
break; //...break;
case "01": //case: z = 01...
var a = x.getRow();
var b = sheetend;
sheet.deleteRows(a, b - a); //...delete rows between and including x, y and all rows after y;
i = a - 1;
Logger.log("...case 01");
break; //...break;
default: //case: 001 < z < 1000...
var a = x.getRow();
var b = y.getRow();
sheet.deleteRows(a, b - a); //...delete rows of x through y...
i = a - 1;
Logger.log("...default");
break; //...break;
}
}
}
}
}
}
有人可以在这里看到我在做什么吗? 我已经尝试过在if语句中使用[null]而不是[''],但这不会改变任何事情。 仍然不对那些if语句感到遗憾...
Google表格处理数据的方式与JavaScript不同。 Google表格中没有null
,但是
Range.getValue()将返回''
(一个空字符串)
=""
的单元格 '
(撇号)的单元格。 在某些情况下,上述情况很好,但在其他情况下则不行。
另外值得一提的是
Range.isBlank()将返回
=""
的单元格为false '
(撇号)的单元格为false 另一方面,JavaScript具有两个“相等”运算符,
==
(相等又称为抽象相等) ===
(身份ak严格相等) 有关
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.