[英]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.