相信很多時候你在使用 google sheet 插入文字的時候, 有時候會使用到粗體、斜體、設定字體顏色、超連結等等。
我們知道如何在 google sheet 上手動操作,但在 GAS 上要怎麼實作呢
這時候我們需要用到 RichTextValue 這個 Class!
讓我們一個一個步驟分解來看吧,如果我們今天想要一個
"Hello, GAS!" 的文字, Hello 想要粗體, GAS! 想要藍色
setText
設定純文字設定純文字,需要在
// 創建 RichTextValueBuilder, 並設下文字
var richText = SpreadsheetApp.newRichTextValue()
.setText("Hello, GAS!");
newTextStyle
新增字型 var textStyleBold = SpreadsheetApp.newTextStyle().setBold(true).build();
var textStyleBlue = SpreadsheetApp.newTextStyle().setForegroundColor("#0000FF").build(); // 藍色
setTextStyle
設定字型 richText.setTextStyle(0, 5, textStyleBold); // "Hello" 位置為 0-5
richText.setTextStyle(7, 10, textStyleBlue); // "GAS!" 位置為 7-10
// 將 RichTextValue 應用到 A1 儲存格
sheet.getRange('A1').setRichTextValue(richText.build());
function setRichTextInCell() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 創建 RichTextValueBuilder, 並設下文字
var richText = SpreadsheetApp.newRichTextValue()
.setText("Hello, GAS!");
// 設置 'Hello,' 為粗體
var textStyleBold = SpreadsheetApp.newTextStyle().setBold(true).build();
richText.setTextStyle(0, 5, textStyleBold); // "Hello" 位置為 0-5
// 設置 'World!' 為藍色
var textStyleBlue = SpreadsheetApp.newTextStyle().setForegroundColor("#0000FF").build();
richText.setTextStyle(7, 10, textStyleBlue); // "World!" 位置為 7-10
// 將 RichTextValue 應用到 A1 儲存格
sheet.getRange('A1').setRichTextValue(richText.build());
}
也可以將上述 RichTextValue 的一系列操作,簡化成一行:
var richText = SpreadsheetApp.newRichTextValue()
.setText("Hello, GAS!")
.setTextStyle(0, 5, textStyleBold)
.setTextStyle(7, 10, textStyleBlue)
.build();
我們還還能用 RichTextValue 來在Google Sheets的儲存格中建立超連結
甚至只可針對部分文字作超連結,也可在同一個儲存格內建立多個超連結,接下來就看下面範例吧!
setLinkUrl
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const value = SpreadsheetApp.newRichTextValue()
.setText("Click here to visit Google website")
.setLinkUrl("https://www.google.com/");
// 將 RichTextValue 應用到 A1 儲存格
sheet.getRange('A1').setRichTextValue(value.build());
setLinkUrl(startOffset, endOffset, textStyle)
const value = SpreadsheetApp.newRichTextValue()
.setText("google & yahoo")
.setLinkUrl(0, 6, "https://google.com")
.setLinkUrl(9, 14, "https://yahoo.tw");
如過有多個 RichTextValue 要套用到多個儲存格,可使用 setRichTextValues 的用法,詳細可參見官網
恭喜你如何學會使用 RichTextValue 啦~ 下一天就正式進入 Google Slide 的世界啦!