javascript 函数 googlesheet 中的 importxml

importxml in javascript function googlesheet

我尝试使用 IMPORTXML 从网站获取一些信息。

我写了一个函数,它可以工作,但不是我想要的。

function info() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var cell = sheet.getActiveCell();
  cell.setFormula('=importXml("https://example.com&sw="&M2&"&s=on", "/html/body/div[1]/p[2]/a")');
}

url和xpath就是一个例子。 单元格 M2 是我在 url.

中添加的信息

因为第一个成功了,我试着写一些更难的东西……但我迷路了。

我搜索以在 M 列的单元格中获取信息以完成 url,存储我使用 xpath 获得的值以将其放入 O 列。

当M的某个单元格没有内容时,我想跳过它继续

我开始做某事,但它不正确。 我收到错误行 5,"no ; before statement",我不知道它是什么。

function info2() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var cell = '=IMPORTXML("https://example.com&sw=" + sheet.getRange('M:M').getValue() + "&s=On", "/html/body/div[1]/p[2]/a")';
  for (var i in data) {
    for (var j in data[i]) {
      sheet.getRange('O:O').setValue(cell);
    }
  }
}

经过大量测试,我意识到我的第一个 url 很好。 &M2& 由 googlesheet 自动增加。

关于根据公式取值,用googlesheet的宏,很容易得到

function val() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('O:O').activate();
  spreadsheet.getRange('O:O').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('O1').activate();
}; 

从现在开始,当O列单元格为空时,我搜索跳过O列单元格中的importxml...