GAS 簡體中文字轉成繁中

在 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 的權限,點選允許即可。

需要幫你寫一個可以在試算表上方產生自定義選單的程式碼嗎?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *