我刚开始使用Googlescript,所以请问一个简单的问题:我想使用IMPORTRANGE()
将数据从一个googlesheet导入到另一个googlesheet。源googlesheet的源范围可以填充1到6行(可变),但是我的目标googlesheet的目标范围只能有非空行。
var urlsheet=SpreadsheetApp.getActive().getSheetByName('Enter Report URL');
// the URL of the source Googlesheet is pasted in cell A5 of the target Googlesheet:'Enter Report URL'
var cell20=urlsheet.getRange("A5");
var cellB20value=cell20.getValue();
// then I use the Importrange formula on the cell with the URL and paste it in cell A20 which gives me the importrange of the source sheet
var temptarget=urlsheet.getRange("A20");
temptarget.setFormula('=IMPORTRANGE('+cellB20value+',"Admin Use Only!A4:U9")');
//Finally, I paste the Importrange from A20 in the last row of my target sheet:
var Creditdetail=SpreadsheetApp.getActive().getSheetByName('Credit_Detail');
var lastrowcredit= Creditdetail.getLastRow()+1;
var finaltarget=Creditdetail.getRange(lastrowcredit,1);
temptarget.copyTo(finaltarget, {contentOnly:true});
但这会继续添加我要求的6行(源表中的A4到U9)...
有人可以帮我弄清楚如何仅导入非空行吗?
答案 0 :(得分:0)
IMPORTRANGE
将导入指定为第二个参数的引用所包含的所有值。
基本上有两个可选路径:
FILTER
,QUERY
等,然后使用保存结果的范围的引用,或者使用Google Apps脚本获取getValues / getDisplayValues,然后使用Array.prototype.filter(callback)
之类的JavaScript方法进行过滤。QUERY
(如果对同一公式进行处理),则过滤数据FILTER
(如果使用其他公式进行的处理)。