質問編集履歴

2

説明の改善

2020/11/05 09:47

投稿

TopingMado
TopingMado

スコア25

test CHANGED
File without changes
test CHANGED
@@ -38,13 +38,13 @@
38
38
 
39
39
  const UwagakiCNtoTW=()=> {
40
40
 
41
- var Spreadsheet = SpreadsheetApp.openById("1rVtE9wpI_f4dI8TCSt3X-D8fP4k-tQXUPLmBM3H9wps");
41
+ var Spreadsheet = SpreadsheetApp.openById("シートID");
42
42
 
43
43
  var sheets = Spreadsheet.getSheets();
44
44
 
45
45
  for(var i = 0; i <sheets.length; i++){
46
46
 
47
- replaceProcess(sheets[i]);
47
+ replaceProcess(sheets[i]); //シートごとに同じ処理
48
48
 
49
49
  }
50
50
 
@@ -58,15 +58,15 @@
58
58
 
59
59
  var LastCol=RunSheet.getLastColumn();
60
60
 
61
- var DataList=[];
61
+ //var DataList=[];
62
62
 
63
63
 
64
64
 
65
- for(var c = 0;c<LastCol;c++){
65
+ for(var c = 0;c<LastCol;c++){ //列ごとに処理
66
66
 
67
67
 
68
68
 
69
- var OriData = RunSheet.getRange(1,c+1,LastRow,1).getValues();
69
+ var OriData = RunSheet.getRange(1,c+1,LastRow,1).getValues(); //列ごとに最終行までのデータを獲得
70
70
 
71
71
  var OriData = [].concat.apply([],OriData);
72
72
 
@@ -78,7 +78,7 @@
78
78
 
79
79
 
80
80
 
81
- TranslatedList.push(LanguageApp.translate(OriData[t],"zh-TW","zh-CN"));
81
+ TranslatedList.push(LanguageApp.translate(OriData[t],"zh-TW","zh-CN")); //データごと変換して配列に格納
82
82
 
83
83
 
84
84
 

1

コードの更新

2020/11/05 09:47

投稿

TopingMado
TopingMado

スコア25

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,12 @@
5
5
  全てのデータを翻訳APIを使用して別の言語に変換し上書きしたいです。
6
6
 
7
7
  しかし、出力を行う際にエラーが出まして、ご教授頂ければ幸いでございます。
8
+
9
+ ###追記
10
+
11
+ LanguageApp.translate は 1 セルずつしか変換不可とご教授頂き、
12
+
13
+ コードを更新してみましたが、相変わらずうまくいかないようです。
8
14
 
9
15
 
10
16
 
@@ -16,15 +22,15 @@
16
22
 
17
23
  ```
18
24
 
19
- エラーメッセ
25
+ コード改善後のエラー
20
26
 
21
- Exception: パラメータ(String)が SpreadsheetApp.Range.setValues のメソッドのシグネチャと一致しません。(行 16、ファイル「コード」)
27
+ Exception: パラメータ(String)が SpreadsheetApp.Range.setValues のメソッドのシグネチャと一致しません。(行 26、ファイル「コード」)
22
28
 
23
29
  ```
24
30
 
25
31
 
26
32
 
27
- ### 該当のソースコード
33
+ ### 改善後ソースコード
28
34
 
29
35
 
30
36
 
@@ -32,15 +38,13 @@
32
38
 
33
39
  const UwagakiCNtoTW=()=> {
34
40
 
35
- var Spreadsheet = SpreadsheetApp.openById("シートID");
41
+ var Spreadsheet = SpreadsheetApp.openById("1rVtE9wpI_f4dI8TCSt3X-D8fP4k-tQXUPLmBM3H9wps");
36
42
 
37
43
  var sheets = Spreadsheet.getSheets();
38
44
 
39
45
  for(var i = 0; i <sheets.length; i++){
40
46
 
41
47
  replaceProcess(sheets[i]);
42
-
43
- //シートごとにreplaceProcessの関数を行う
44
48
 
45
49
  }
46
50
 
@@ -54,19 +58,41 @@
54
58
 
55
59
  var LastCol=RunSheet.getLastColumn();
56
60
 
57
- var originalData = RunSheet.getDataRange().getValues();
61
+ var DataList=[];
58
62
 
59
- //シートごとのデータを獲得する
60
63
 
61
- var transVal = LanguageApp.translate(originalData,"zh-TW","zh-CN");
62
64
 
63
- //データを翻訳APIで変換する
65
+ for(var c = 0;c<LastCol;c++){
64
66
 
65
- // Logger.log(transVal);
67
+
66
68
 
67
- RunSheet.getRange(1,1,LastRow,LastCol).setValues(transVal);
69
+ var OriData = RunSheet.getRange(1,c+1,LastRow,1).getValues();
68
70
 
71
+ var OriData = [].concat.apply([],OriData);
72
+
73
+
74
+
69
- //変換後内容を出力
75
+ var TranslatedList=[];
76
+
77
+ for(var t=0;t<OriData.length;t++) {
78
+
79
+
80
+
81
+ TranslatedList.push(LanguageApp.translate(OriData[t],"zh-TW","zh-CN"));
82
+
83
+
84
+
85
+ }
86
+
87
+ for(var v=0;v<TranslatedList.length;v++){
88
+
89
+ RunSheet.getRange(v+1,c+1).setValues(TranslatedList[v]);
90
+
91
+
92
+
93
+ }
94
+
95
+ }
70
96
 
71
97
  }
72
98