今回やりたいこと
スプレッドシートのA列に入力されている英語を日本語に翻訳してB列に入れたい
実行前
実行後
サンプルデータ
最終行までを取得して、全部一気に翻訳してみる
コード1.gsvar sourceLang = '';// 翻訳元の言語を空にしておくと自動判定してくれる
var targetLang = 'ja';// この言語に翻訳する 言語の種類は→https://cloud.google.com/translate/docs/languages
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var lastRow = sheet.getLastRow();
var resultArray = [];
var range = sheet.getRange(startRow, 1, lastRow, 1);
var values = range.getDisplayValues();
values = arrayPushApply(values);
values = values.filter(function(value) { return value !== ''; });
setTranslated(sheet, startRow, values);
}
function setTranslated(sheet, startRow, resultArray) {
var translateds = [];
for(var i = 0; i < resultArray.length; i++) {
var value = resultArray[i];
var translated = LanguageApp.translate(value, sourceLang, targetLang);
translateds.push([translated])
}
var range = sheet.getRange(startRow, 2, translateds.length, 1);
range.setValues(translateds);
}
//二次元配列を一次元配列にして返す
function arrayPushApply(array){
for(var i = 1; i < array.length; i++){
Array.prototype.push.apply(array[0], array[i]);
}
return array[0]
}
|

