5

Tôi đang sử dụng SpreadsheetApp.getActiveRange(). GetValues ​​(); để lấy giá trị của một dải ô, nhưng nó không trả về siêu kết nối liên kết với ô đó, chỉ văn bản. Có cách nào để có được các siêu liên kết hoặc tôi phải thêm một lĩnh vực khác với các url trong nó?Làm cách nào tôi có thể truy xuất siêu liên kết từ ô dữ liệu trong tập lệnh ứng dụng google?

Cảm ơn.

CẬP NHẬT: Đây là cách tôi đã sử dụng nó để tạo danh sách liên kết.

<ul> 
    <? 
    var range = SpreadsheetApp.getActiveRange(); 
    var data = range.getValues(); 
    var links = range.getFormulas(); 

    for(var i=1; i < data.length; i++){ 
     if(data[i][0] !== ''){ 
      ?> 
      <li><a href="<?= links[i][0].split("\"")[1]; ?>"><?= data[i][0]; ?></a></li> 
      <? 
     } 
    } 
    ?> 
</ul> 

Trả lời

9

Siêu liên kết được liên kết với văn bản ô được biểu thị bằng công thức. Google Spreadsheets tự động chuyển đổi bất kỳ URL nào thành siêu kết nối có thể nhấp nhưng trong các trường hợp đó, công thức không được sử dụng và văn bản cũng như URL giống nhau.

Dưới đây là một giải pháp rất đơn giản (không kiểm tra lỗi) về cách bạn có thể thực hiện điều này thông qua tập lệnh. Tôi nghi ngờ bạn đã nhập từ Excel hoặc cái gì khác và đó là bạn không dễ dàng nhìn thấy công thức HYPERLINK.

Nếu bạn có một tế bào trông giống như thế này -

Cell with hyperlink

Sau đó, kịch bản này sẽ cho phép bạn đọc các URL liên kết với nó -

function getURL() { 
    var range = SpreadsheetApp.getActiveSheet().getActiveCell(); 

    //logs - Google 
    Logger.log(range.getValue()); 

    //logs - =HYPERLINK("http://www.google.com", "Google") 
    Logger.log(range.getFormulaR1C1()); 

    //simple regex to get first quoted string 
    var url = /"(.*?)"/.exec(range.getFormulaR1C1())[1]; 

    //logs - http://www.google.com 
    Logger.log(url); 
} 
+3

Nhờ đó dẫn tôi đi đúng hướng . var links = SpreadsheetApp.getActiveRange(). GetFormulas(); Rất tuyệt vời. – Scottux

+0

Nó hoạt động nhưng phương pháp triển khai đúng cho bất kỳ ai thậm chí ẩn danh là gì? – hyip

+0

Lưu ý rằng thao tác này không hoạt động nếu HYPERLINK có URL động. –

Các vấn đề liên quan