簡體   English   中英

Google Spreadsheet-在使用ImportXML()將Google搜索結果導入到單元格,將單元格值,Google重定向URL轉換為實際URL之后

[英]Google Spreadsheet— after employing ImportXML() to import Google search results into cells, convert cell values, Google redirect urls, to actual urls

單元格值的示例為“ https://www.google.com/url?q=http://en.wikipedia.org/wiki/Boricua_College&sa=U&ei=mTTIU4fhEs_jsASNy4G4Dg&ved=0CBQQFjAAOAE&usg=AFQjCNEnOjYOji3mdwTTththk (在“以純文本格式顯示),理想情況下,我想將其替換為“ http://en.wikipedia.org/wiki/Boricua_College ”。 當我在腳本編輯器中運行程序時,電子表格會提示我輸入列字母,這是應該的,但是此后什么也不做。 它不會刪除#N / A值,也不會修剪任何URL。

function trimLink() {
  var s = SpreadsheetApp.getActiveSheet();
  // set column to trim
  var c = Browser.inputBox("Please", "Type in the column name (e.g.: A, B, etc.)",   Browser.Buttons.OK_CANCEL);
  if (c != "cancel") {
   c = c.charCodeAt(0) - 64;
  }
  var r, v;
  // set length to cut from beginning of string
  var begLink = "https://www.google.com/url?q=";
  var begLen = begLink.length;
  var endLen;
  try
  {
    if(c != "cancel")
    {
      r = 2; // first row is row two
      while (r <= s.getLastRow()) {
        v = s.getRange(r, c).getValue();
        // #N/A is the result of failed importXML
        if (v != "" && v != "#N/A") {
          // initialize variable to hold value of string
          var link = String(v);
          for (var k = 0; k < link.length; k++) {
            // link must be trimmed at char & (&sa)
            if (link.charAt(k) == '&') {
              // set length to cut from end of string
              endLen = k;
              break;
            }
          }
          v = link.substr(begLen, endLen - 1);
        }
        else {
         v = "";
        }
        r++;
      }
    }
  } catch (e) {Browser.msgBox("Error Alert:", e.message, Browser.Buttons.OK);}
}

主要問題是我沒有為單元分配新值。 最重要的是,我使用substr而不是substring,但是直到我的程序成功將單元格值更改為其他值時才意識到。

function trimLink() {
  var s = SpreadsheetApp.getActiveSheet();
  // input relevant column
  var c = Browser.inputBox("Please", "Type in the column name (e.g.: A, B, etc.)",   Browser.Buttons.OK_CANCEL);
  // represent letter input as column number
  if (c != "cancel") {
   c = c.charCodeAt(0) - 64;
  }
  var r, link;
  // length to cut from beginning of string
  var begLink = "https://www.google.com/url?q=";
  var begLen = begLink.length;
  var endLen = 0;
  try
  {
    if(c != "cancel")
    {
      r = 2; // first row is row two
      while (r <= s.getLastRow()) {
        link = String(s.getRange(r, c).getValue());
        // #N/A is the result of failed importXML
        if (link != "" && link != "#N/A") {
          while (link.charAt(endLen) != '&') {
            endLen++
          }
          s.getRange(r,c).setValue(link.substring(begLen, endLen));
        }
        else {
          // clear cell if importxml (outside of this program) had failed to extract a g search url
          s.getRange(r, c).setValue("");
        }
        r++;
      }
    }
  } catch (e) {Browser.msgBox("Error Alert:", e.message, Browser.Buttons.OK);}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM