我有以下代碼用于在 Google Docs 中附加表格。
var sss = SpreadsheetApp.openById('id of spreadsheet');
var rawData = sss.getDataRange().getValues()
var data = []
for (var i = 0; i< rawData.length; i ){
tempData=[]
tempData=[rawData[i][1],rawData[i][2],rawData[i][3]]
data.push(tempData)
}
var someDoc = DocumentApp.openById(someId);
var body = someDoc.getBody();
body.appendTable(data).editAsText().setBold(false);
這段代碼作業正常。問題是 .url 中有 url rawdata[i][3]。它以純文本形式顯示在 Google 檔案中。如何將其轉換為超鏈接?如果可以寫成body.appendParagraph("my link").setLinkUrl("http://www.google.com"). 問題是它在一個陣列中,而不是在段落中。
uj5u.com熱心網友回復:
我相信你的目標如下。
- 您想通過從 Google 電子表格中檢索值來將表格放入 Google 檔案。
- 在您的電子表格中,“D”列有超鏈接。并且,您想將該值設定為超鏈接。
在這種情況下,如何進行以下修改?
修改后的腳本:
var sss = SpreadsheetApp.openById('id of spreadsheet');
var rawData = sss.getDataRange().getValues();
var data = []
for (var i = 0; i < rawData.length; i ) {
tempData = []
tempData = [rawData[i][1], rawData[i][2], rawData[i][3]]
data.push(tempData)
}
var someDoc = DocumentApp.openById(someId);
var body = someDoc.getBody();
// I modified below script.
var table = body.appendTable(data);
for (var r = 0; r < table.getNumRows(); r ) {
var obj = table.getCell(r, 2).editAsText();
var text = obj.getText();
if (/^https?:\/\//.test(text)) obj.setLinkUrl(text);
}
table.editAsText().setBold(false);
- 運行此腳本時,將使用從電子表格檢索到的值放置一個表。并且,關于表格的“C”列,文本變為超鏈接。
筆記:
此修改后的腳本假設您的“D”列值類似于
https://###和http://###。請注意這一點。如果要給出
click here帶有超鏈接的特定文本(例如,),請進行如下修改。從
if (/^https?:\/\//.test(text)) obj.setLinkUrl(text);到
if (/^https?:\/\//.test(text)) obj.setText("click here").setLinkUrl(text);
參考:
- 類表的getCell(rowIndex, cellIndex)
- 設定鏈接網址(網址)
uj5u.com熱心網友回復:
您可以嘗試以下操作以使 Google Doc 中的所有 URL 都可點擊:
function urlClickable() {
var urlRegex = 'http[s]?:\/\/[^ ] ';
var doc = DocumentApp.openById('yourDocId');
var body = doc.getBody();
var urlElement = body.findText(urlRegex);
while (urlElement != null) {
var text = urlElement.getElement().asText();
var startOffset = urlElement.getStartOffset();
var endOffset = urlElement.getEndOffsetInclusive();
text.setLinkUrl(startOffset, endOffset, getUrl(text.getText()));
urlElement = body.findText(urlRegex, urlElement);
}
}
function getUrl(text) {
var startOffset = text.indexOf('http');
var endOffset = text.indexOf(' ', startOffset);
if (endOffset === -1) {
endOffset = text.length;
}
return text.substring(startOffset, endOffset);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/463915.html
