电子表格Importxml仅保留值

时间:2018-12-13 17:48:46

标签: import spreadsheet copy-paste

我有1000多个Importxml函数的工作表。我注意到我不能在一张纸上导入> 50,所以我想以1的方式导入它们并快速复制粘贴值,因此我将能够导入所有的1000。

我尝试了很多事情,这些是我尝试过的最后两个脚本:

脚本1:

function testfindfunc1() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var targetrow = 7;
  var targetcell = 1;
  var result = sheet.getRange(targetrow, targetcell);
  var formula1 = result.getFormula();
  var findVal = sheet.getRange(targetrow, targetcell).getValue();
  if( findVal == ('#N/A') || findVal == ('Loading...')) {
  var rangeToCopy = sheet.getRange(targetrow, targetcell);
  rangeToCopy.copyTo(sheet.getRange(targetrow, targetcell));
} else {
  result.setValue(findVal);
  }
   }

上面脚本的问题:

  1. 它仅从1个单元格复制,并且仅从特定行复制(我需要f.e A1:G1000)。
  2. 当出现“正在加载...”或“#N / A”时,返回“ #ERROR!”。而不是跳过/等待。

脚本2:

function bulkXml() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var Num = Browser.inputBox("How many URLs do you need to scrape?");

for (x=2; x-2 < Num; x++)  {
    var url = sheet.getRange(x,15).getValue();
              sheet.getRange(2,2).setValue(url);
    var xpathResult = sheet.getRange('B2').getValue();
    var xpathResult1 = sheet.getRange('D2').getValue();
    var xpathResult2 = sheet.getRange('E2').getValue();
    var xpathResult3 = sheet.getRange('F2').getValue();
    var xpathResult4 = sheet.getRange('G2').getValue();
    var xpathResult5 = sheet.getRange('H2').getValue();     
    var counter = x - 1;
        sheet.getRange("B1").setValue(counter + "/" + Num);
        sheet.appendRow([xpathResult,xpathResult1,xpathResult2,xpathResult3,xpathResult4,xpathResult5]); 
if( url == ('#N/A') || url == ('Loading...')) {
    var rangeToCopy = sheet.getRange(counter);
        rangeToCopy.copyTo(sheet.getRange(counter));
    }
       }
          }

脚本2问题:

实际上,起初〜50,它的工作效果不错,但是大约50以后,它的运行速度很慢,并打印了很多次“ #ERROR!”。

此外,如果有更好的方法(不是电子表格),我想知道:)

0 个答案:

没有答案