在 Google Apps Script (GAS) 中,最簡單的方法是調用 Google 翻譯的 API。你可以使用內建的 LanguageApp 服務。
使用 LanguageApp 實作
你可以寫一個簡單的函式來處理轉換。這個方法不需要另外安裝程式庫。
JavaScript
function convertToTraditional(text) {
// 將簡體中文轉為繁體中文
// sourceLanguage 設為 'zh-CN',targetLanguage 設為 'zh-TW'
var translatedText = LanguageApp.translate(text, 'zh-CN', 'zh-TW');
return translatedText;
}
function test() {
var simplified = "欢迎使用谷歌脚本";
var traditional = convertToTraditional(simplified);
Logger.log(traditional); // 輸出:歡迎使用谷歌腳本
}
批次處理試算表資料
如果你想直接在 Google 試算表裡面轉換整欄內容,可以改寫成自定義函數。
JavaScript
function CN2TW(input) {
if (input == "") return "";
return LanguageApp.translate(input, 'zh-CN', 'zh-TW');
}
在試算表儲存格輸入 =CN2TW(A1) 就能看到效果。
注意事項
這個方法背後是走 Google 翻譯的邏輯。雖然方便,但有時候會出現詞彙習慣不同的問題。例如簡體的「軟件」會被轉成「軟體」。如果只是單純的字對字轉換,這通常已經足夠。
如果你需要更精準的字對字轉換,可能需要另外串接像 OpenCC 這種外部的 API 或引入更複雜的字典檔。不過對高中生或一般開發者來說,LanguageApp 是最快也最穩定的選擇。
你想知道怎麼把這個功能自動化套用到整份試算表嗎?
要在 Google 試算表自動化處理整份資料,最快的方式是利用試算表的公式下拉,或是寫一段 Script 直接掃描特定範圍。
使用公式自動下拉
這不需要寫複雜程式。只要在腳本編輯器貼上之前的自定義函數:
JavaScript
function CN2TW(input) {
if (Array.isArray(input)) {
return input.map(row => row.map(cell => cell ? LanguageApp.translate(cell, 'zh-CN', 'zh-TW') : ""));
}
return input ? LanguageApp.translate(input, 'zh-CN', 'zh-TW') : "";
}
這個版本支援陣列。你可以在試算表輸入 =CN2TW(A1:A100),它會一次把這一百列的內容全部轉換,效率比一格一格拉公式高很多。
寫一段腳本直接修改儲存格
如果你希望點一個按鈕就把選定的範圍轉好,可以使用以下程式碼:
JavaScript
function convertSelection() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (typeof values[i][j] === "string" && values[i][j] !== "") {
values[i][j] = LanguageApp.translate(values[i][j], 'zh-CN', 'zh-TW');
}
}
}
range.setValues(values);
}
這段程式會抓取你目前滑鼠選取的範圍。它把資料讀進記憶體處理完後,再一口氣寫回試算表。這比重複呼叫儲存格寫入快非常多。
執行與測試
你可以把 convertSelection 綁定到試算表的選單或畫一個按鈕。這對處理大量舊資料特別好用。記得第一次執行時,Google 會要求你授權 LanguageApp 和 Spreadsheet 的權限,點選允許即可。
需要幫你寫一個可以在試算表上方產生自定義選單的程式碼嗎?