我有很多网址,我想在google sheet上通过importxml提取一些信息。 我正在尝试从网站上获得显示器的评论评分。
我想创建一个函数,以便当我给它一个单元格作为引用(包含产品的url)时,它将为importxml函数创建一个字符串(具有固定的和正确的xpath)并将其传递给它的单元格叫做。 (或相邻的一个)
function puan(x) {
var cellFunction = '=IMPORTXML("' + x + '";"//div[@id=\'puan\']//@data-percent")';
return cellFunction;
}
我尝试了类似的方法,但是没有用。它只是像字符串一样返回值。 该字符串看起来不错,并且如果直接将其传递给单元格,它将返回我想要的值。
然后,我尝试选择活动单元格并在其中传递值,但是它不起作用。 我想我用错了。在应用程序脚本的文档中,它说自定义功能只能更改它称为的单元格(或相邻单元格)的值
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRange().setValue(cellFunction);
当我将其添加到函数中并删除“ return cellFunction;”时它返回“ 0” 我想我用错了。
因为我找不到解决方法,您能指导我吗? 我也乐于接受有关提取相同信息的更好方法的建议。
答案 0 :(得分:0)
您应该为此使用setFormula():https://developers.google.com/apps-script/reference/spreadsheet/range#setformulaformula
如果仍然无法正常工作,请共享工作表的副本,我会尽力帮助您。
答案 1 :(得分:0)
cellFunction
来返回puan(x)
到主函数 示例:
function myFunction() {
var URL = "Your URL"
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRange().setValue(puan(URL));
}
function puan(x) {
var cellFunction = '=IMPORTXML("' + x + '";"//div[@id=\'puan\']//@data-percent")';
return cellFunction;
}
puan(x)
内的电子表格中 示例:
function myFunction() {
var URL = "Your URL"
puan(URL);
}
function puan(x) {
var cellFunction = '=IMPORTXML("' + x + '";"//div[@id=\'puan\']//@data-percent")';
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRange().setValue(cellFunction);
}
注意:
可以使用setFormula()
代替setValue()
,但这是可选的。