前提・実現したいこと
指定したスプレッドシートの全シートを対象に、
全てのデータを翻訳APIを使用して別の言語に変換し上書きしたいです。
しかし、出力を行う際にエラーが出まして、ご教授頂ければ幸いでございます。
###追記
LanguageApp.translate は 1 セルずつしか変換不可とご教授頂き、
コードを更新してみましたが、相変わらずうまくいかないようです。
発生している問題・エラーメッセージ
Logger.logで翻訳は成功だと確認済みですが、エラーが出て、一括出力ができません
コード改善後のエラーゴード Exception: パラメータ(String)が SpreadsheetApp.Range.setValues のメソッドのシグネチャと一致しません。(行 26、ファイル「コード」)
改善後ソースコード
GAS
1const UwagakiCNtoTW=()=> { 2 var Spreadsheet = SpreadsheetApp.openById("シートID"); 3 var sheets = Spreadsheet.getSheets(); 4 for(var i = 0; i <sheets.length; i++){ 5 replaceProcess(sheets[i]); //シートごとに同じ処理 6 } 7} 8 9const replaceProcess =(RunSheet)=> { 10var LastRow=RunSheet.getLastRow(); 11var LastCol=RunSheet.getLastColumn(); 12//var DataList=[]; 13 14for(var c = 0;c<LastCol;c++){ //列ごとに処理 15 16 var OriData = RunSheet.getRange(1,c+1,LastRow,1).getValues(); //列ごとに最終行までのデータを獲得 17var OriData = [].concat.apply([],OriData); 18 19 var TranslatedList=[]; 20for(var t=0;t<OriData.length;t++) { 21 22TranslatedList.push(LanguageApp.translate(OriData[t],"zh-TW","zh-CN")); //データごと変換して配列に格納 23 24} 25for(var v=0;v<TranslatedList.length;v++){ 26RunSheet.getRange(v+1,c+1).setValues(TranslatedList[v]); 27 28} 29 } 30}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/30 00:46