2

我正在編寫Google Apps腳本以使用HtmlService將電子表格中的數據顯示到HTML表格中。但我面臨以下兩個挑戰:HtmlService表不支持換行符和電子表格中的超鏈接

  1. 如果電子表格單元格值有換行符,表格會將其顯示爲單行。
  2. 如果電子表格單元格具有超鏈接,例如鏈接到Google雲端硬盤文件,它將其顯示爲表格單元格中的純文本。

我試着寫電子表格的單元格值爲<a href="url of file">File Name</a>,但仍然將表格作爲純文本讀取而沒有製作超鏈接。 以下是HTML代碼。

如何使用HTML表格中的換行符顯示電子表格單元格值?另外如何在電子表格單元格中爲表格創建超鏈接?

<table cellspacing="0" style="width:700px; background-color:#fdfbc4; table-layout:fixed; word-wrap: break-word "> 
    <? for(var l=0; l< data_labels.length -1 ; l++){ ?> 
     <tr>   
     <td> <?= data_labels[l] ?> </td> <td > <?= data[l] ?></td>   
     </tr> 
    <? } ?> 

    </table> 

回答

0

一個簡單的解決方案,以顯示換行/空格
使用HTML標籤<pre>Data retreived here</pre>
然後,您可以應用CSS類pre元素來改變預定義的字體。

The HTML Preformatted Text (<pre>) represents preformatted text. Text within this element is typically displayed in a non-proportional font exactly as it is laid out in the file. Whitespaces inside this element are displayed as typed.

+0

謝謝。這工作完美。現在它顯示所有換行符。 –

4

假設你有一個變量result包含從電子表格單元格中的文本,您可以通過<br>標籤取代它們複製爲HTML換行符。

result = result.replace(/\n/g,"<br>"); 

在我自己的SheetConverter庫,我也與非中斷空格代替空格和編碼<符號,以避免被解釋爲HTML單元格內容。

result = result.replace(/ /g,"&nbsp;").replace(/</g,"&lt;").replace(/\n/g,"<br>"); 

您的問題的第2部分不容易回答,部分原因是因爲在電子表格中有多種方式表示URL。

  • 如果單元格中包含HYPERLINK()功能,您可以使用Range.getFormula()檢索式,並獲取URL,並從顯示的文本。但是,該URL可能是另一個公式或單元格引用,因此您仍然可能會得到一個不可行的鏈接。

  • 如果單元格中包含文本,谷歌表解釋作爲URL或電子郵件地址,它會被標記爲在表格圖形用戶界面的鏈接,但既不產生的格式也沒有HREF可用於谷歌Apps腳本。

隨意檢查SheetConverter的源代碼,並從中獲取靈感,或者只是將它用作庫來簡化您的工作。

+0

感謝您的回覆。我嘗試過,但如果我在腳本中將電子表格單元格的新行替換爲
,則會在表格文本中顯示
。 此外,我嘗試使用HYPERLINK()&getFormula()函數在表中的超鏈接,但它顯示錶中的超鏈接文本沒有可點擊的鏈接。 –

相關問題