[英]Unlink all hyperlinks from a sheet
我正在嘗試取消鏈接 Google 電子表格中的所有超鏈接,到目前為止,我正在嘗試進行搜索並替換下面的代碼,但想知道是否有特定的 function 來執行取消鏈接?
function replacelinks(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Links");
var values = sheet.getDataRange().getValues();
replaceInSheet(values, '.com', '');
replaceInSheet(values, '.net', '');
我相信你的目標如下。
為此,這個答案怎么樣?
不幸的是,在現階段,似乎沒有直接刪除單元格和文本的超鏈接的方法。 因此,為了實現您的目標,我想提出一個解決方法。 此解決方法的流程如下。
請將以下腳本復制並粘貼到腳本編輯器中。 並且, 請在高級 Google 服務中啟用表格 API 。 並請設置要刪除超鏈接的工作表名稱。
function myFunction() {
const sheetName = "Sheet1"; // Please set the sheet name.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(sheetName);
const sheetId = sheet.getSheetId();
const range = sheet.getDataRange();
const temp = ss.insertSheet();
const tempId = temp.getSheetId();
range.copyTo(temp.getRange("A1"), {contentsOnly: true});
const requests = range.getRichTextValues().reduce((ar, row, i) => {
row.forEach((col, j) => {
const runs = col.getRuns();
if (col.getLinkUrl() || (runs && runs.some(e => e.getLinkUrl()))) {
const req1 = {updateCells:{range:{sheetId:sheetId,startRowIndex:i,endRowIndex:i + 1,startColumnIndex:j,endColumnIndex:j + 1},fields:"userEnteredValue"}};
const req2 = {copyPaste:{
source:{sheetId:tempId,startRowIndex:i,endRowIndex:i + 1,startColumnIndex:j,endColumnIndex:j + 1},
destination:{sheetId:sheetId,startRowIndex:i,endRowIndex:i + 1,startColumnIndex:j,endColumnIndex:j + 1},
pasteType:"PASTE_NORMAL"
}};
ar = ar.concat(req1, req2);
}
});
return ar;
}, []);
Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());
ss.deleteSheet(temp);
}
HYPERLINK()
的超鏈接。getRichTextValues()
無法檢索數字值。 這樣,當數值有超鏈接時,這些超鏈接不能被刪除。 關於這個問題,我已經向問題跟蹤器報告了。 參考所以當這個問題被刪除時,我認為使用上面的腳本,所有的超鏈接都可以被刪除。 或者,現階段,上述腳本中使用的getLinkUrl()
方法並未包含在官方文檔中。 所以我也認為在以后的更新中可能會增加直接刪除超鏈接的方法。對我有幫助的是將范圍的setShowHyperlink
設置為 false。
例子:
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getActiveSheet();
const range = ws.getRange(lastRow, 1)
range.setValue('https://example.com');
range.setShowHyperlink(false);
但是一旦你雙擊這樣的單元格,谷歌就會重新應用超鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.