質問編集履歴

4

質問内容の変更

2017/09/11 03:29

投稿

ryuichiro
ryuichiro

スコア9

test CHANGED
File without changes
test CHANGED
@@ -76,18 +76,16 @@
76
76
 
77
77
  var str13 = str12.replace('<table style="border-collapse:collapse;font-size:12px;font-weight: normal; font-style: normal;text-align:right;background-color:#f6f6f6;">' ,'');
78
78
 
79
- var str14 = str13.replace('<tr style="background-color:#ffffff;color:#000000;font-size:12px;text-align:center;vertical-align:center;">', '');
80
-
81
- var str15 = str14.replace('<th style="background-color:#ffffff;font-size:12px;border:1px solid; font-weight: normal; font-style: normal;"><p></th><th style="background-color:#ffffff;font-size:12px;border:1px solid; font-weight: normal; font-style: normal;writing-mode:tb-rl;filter:flipv fliph;"><p></th></p></tr>', '');
82
-
83
- var str16 = str15.replace('<td style="border:1px solid; color:#000000;background-color:#ffffff;font-weight: normal; font-style: normal;text-align:left;vertical-align:center;font-size:12px;"></td><td style="border:1px solid; vertical-align:center;"></td></tr>', '');
84
-
85
-
79
+ //※一部略
80
+
81
+
86
82
 
87
83
  /* 表項目のタグ置換え */
88
84
 
89
85
  var str17 = str16.replace('<th style="font-size:-12px;font-weight: normal; font-style: normal;text-align:center;vertical-align:center;border:1px solid; border-collapse:collapse;"></th>', '');
90
86
 
87
+
88
+
91
89
  /* 表データのタグ置換え */
92
90
 
93
91
  var str18 = str17.replace('<td class = "grid" style="text-align:right;vertical-align:center;border:1px solid; border-collapse:collapse;"></th>', '');
@@ -166,14 +164,18 @@
166
164
 
167
165
  ①Spreadsheetの表示結果では1行ずつデータが格納されている
168
166
 
169
- →余分な改行やスペースが多く、見づらいので削除したい
167
+ 余分な改行やスペースが多く、見づらいので削除したい
170
168
 
171
169
  (対策検討)
172
170
 
173
- JSで改行コードを<br>に置換して
171
+ 改行コードをして改行コードを削除す方法
172
+
173
+ 下記コードを応用して改行コードを他のものに変換できるのでしょうか。
174
174
 
175
175
  ```JavaScript
176
176
 
177
+ //改行コードを<br>に置換してみる
178
+
177
179
  str.replace(/\r?\n/g, '<br>');
178
180
 
179
181
  ```
@@ -184,7 +186,7 @@
184
186
 
185
187
  最後のところに、「sheet.getRange(i+1,1).setValue(mail_body_split[i]);」
186
188
 
187
- 2行目に出したいときに、「(i+2,1)」にすれば可能でしょうか。
189
+ 2行目に出したいときに、**「(i+2,1)」**にすれば可能でしょうか。
188
190
 
189
191
 
190
192
 

3

質問内容を変えました。

2017/09/11 03:29

投稿

ryuichiro
ryuichiro

スコア9

test CHANGED
@@ -1 +1 @@
1
- Gmail本文テキストから抽出したデータをSpreadSheetきれいに整理したい
1
+ Gmail本文テキストの表データをGASでコピペしたい
test CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  ######**システム要件**:最新取得した特定Gmail本文をSpreadSheetでの情報管理を自動化
4
4
 
5
- **Gmail本文からテキスト抽出した情報をスクレイピングしSpreadSheetに貼り付けしたい。**
5
+ **Gmail本文からテキスト抽出した情報を抽出SpreadSheetに貼り付け**
6
-
7
-
8
-
6
+
7
+
8
+
9
- ▼スクリプトの流れ(ここまで実行結果が出ている)
9
+ ▼スクリプトの流れ(まで実行結果が出ている)
10
10
 
11
11
  ①特定の件名のメールを検索し、最新メール本文を取得
12
12
 
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
 
33
- /* メールを検索し本文を変数に保存 */
33
+ /* メールを検索し本文を変数に保存 */
34
34
 
35
35
  var threads = GmailApp.search('subject:Softbank Daily Results - SIM Box Detection'); // メールを検索し一覧を取得
36
36
 
@@ -38,15 +38,11 @@
38
38
 
39
39
 
40
40
 
41
- //var mail_body = thread_top.getMessages()[0].getPlainBody(); // <br/>タグなしの本文を取得 ※本文のHTMLテキストが表示されず
42
-
43
41
  var mail_body = thread_top.getMessages()[0].getBody(); // 本文のテキストを取得
44
42
 
45
- //var mail_body_split = mail_body.split(/\r\n|\r|\n/); // メールの本文を改行ごとに配列に格納
43
+
46
-
47
-
48
-
44
+
49
- /* テキストに含まれているHTMLタグを除去する */
45
+ /* テキストに含まれているHTMLタグを除去する */
50
46
 
51
47
  var str = mail_body;
52
48
 
@@ -56,35 +52,27 @@
56
52
 
57
53
 
58
54
 
59
- /* HTMLテキストの前置き箇所を除外 */
55
+ /* HTMLテキストの前置き箇所を除外 */
60
-
56
+
61
- //var str4 = str3.replace('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">','');
57
+ var str4 = str3.replace('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">','');
62
-
58
+
63
- var str5 = str3.replace(/<!-- tell the browser to not use it's cache for this page -->/g ,"");
59
+ var str5 = str3.replace(/<!-- tell the browser to not use it's
64
-
65
- var str6 = str5.replace(/body {font-weight:normal; font-size:14px; background-color:#cccccc; font-family:Arial, Helvetica, sans-serif; margin:0px;}/g ,'');
60
+
66
-
67
- var str7 = str6.replace(/table.contentwithborder {border:1px solid black;border-collapse:collapse;text-align:left;vertical-align:top;}/g, '');
68
-
69
- var str8 = str7.replace(/td.grid {border:1px solid black;text-align:left;border-collapse:collapse;}/g,'');
70
-
71
- var str9 = str8.replace(/td.transposecolgrid {background-color:#f6f6f6;}/g, '');
72
-
73
- var str10 = str9.replace(/SIGOS SBD REPORTING Report/g ,'');
61
+ //※一部略
74
-
75
-
76
-
62
+
63
+
64
+
77
- /* 表の件名のみ抽出 */
65
+ /* 表の件名のみ抽出 */
78
66
 
79
67
  var str11 = str10.replace('<span style="color:#000080; line-height:150%; padding-left:5px"><strong></strong></span>', '');
80
68
 
81
- /* 表フォーマットの除外 */
69
+ /* 表フォーマットの除外 */
82
70
 
83
71
  var str12 = str11.replace('<table style="font-size:-12px;font-weight: normal; font-style: normal;border:1px solid; border-collapse:collapse;">' ,'');
84
72
 
85
73
 
86
74
 
87
- /* Daily test overviewの表タグを除外 */
75
+ /* Daily test overviewの表タグを除外 */
88
76
 
89
77
  var str13 = str12.replace('<table style="border-collapse:collapse;font-size:12px;font-weight: normal; font-style: normal;text-align:right;background-color:#f6f6f6;">' ,'');
90
78
 
@@ -106,25 +94,21 @@
106
94
 
107
95
  Logger.log(str18.replace(' ',''));
108
96
 
109
- //Logger.log(str18);
97
+
110
-
111
-
112
-
113
- //var mail_body_split = str18.split(/\r\n|\r|\n/); // メールの本文を改行ごとに配列に格納
114
98
 
115
99
  var mail_body_split = str18.split(/\r\n/); // メールの本文を改行ごとに配列に格納
116
100
 
117
101
 
118
102
 
119
- /* シート名用にタイムスタンプを取得 */
103
+ /* シート名用にタイムスタンプを取得 */
120
-
104
+
121
- var today = new Date(); // 現在のタイムスタンプを取得
105
+ var today = new Date(); // 現在のタイムスタンプを取得
122
106
 
123
107
  var timestamp = today.getFullYear()+"/"+(today.getMonth()+1)+"/"+today.getDate(); // タイムスタンプを整形(YYYY/MM/DD)
124
108
 
125
109
 
126
110
 
127
- /* シートを追加(シート名はタイムスタンプ */
111
+ /* シートを追加(シート名はタイムスタンプ */
128
112
 
129
113
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
130
114
 
@@ -132,7 +116,7 @@
132
116
 
133
117
 
134
118
 
135
- ![イメジ説明](a59a5a07884b042fa71f44eee31abe64.png)トの移動(上記で作成したシートに移動) */
119
+ /* シートの移動(上記で作成したシートに移動)*/
136
120
 
137
121
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
138
122
 
@@ -142,7 +126,7 @@
142
126
 
143
127
 
144
128
 
145
- /* セルにデータを追加(A1のセル) */
129
+ /* セルにデータを追加(A1のセル) */
146
130
 
147
131
  for(var i=0; i<mail_body_split.length; i++) { // 配列のデータの数(改行の行数)だけ繰り返す
148
132
 
@@ -166,17 +150,13 @@
166
150
 
167
151
  **★完成イメージ**
168
152
 
169
-
153
+ ![イメージ説明](97a42fd1ea35c8b502f8cd7b1d0eeb80.png)
170
154
 
171
155
  ###試したこと
172
156
 
173
-
174
-
175
157
  **実行結果**
176
158
 
177
-
178
-
179
- 実行結果先:SpreadSheet参照
159
+ ![イメージ説明](957f35ba5fd4e64b3ccc0fdbeaee4766.png)
180
160
 
181
161
 
182
162
 
@@ -184,17 +164,41 @@
184
164
 
185
165
  **<課題>**
186
166
 
167
+ ①Spreadsheetの表示結果では1行ずつデータが格納されている
168
+
187
- 余分な改行やスペースが多いので削除したい
169
+ 余分な改行やスペースが多く、見づらいので削除したい
170
+
188
-
171
+ (対策検討)
172
+
189
- 改行コードを他のものでき関数を使うべきでしょうか?
173
+ JSで改行コードを<br>してみ
190
-
174
+
191
- _ 例)replase関数
175
+ ```JavaScript
176
+
192
-
177
+ str.replace(/\r?\n/g, '<br>');
178
+
179
+ ```
180
+
193
- ②テキスト本文を表で整理して表示させたい
181
+ ②テキスト本文の表そのまま表示させたい
194
-
182
+
195
- →セルIDを指定して貼り付けできる関数を使うべきでしょうか?
183
+ (対策検討)
196
-
184
+
197
- _ 例)sheet.getRange(i+1,1)sheet.getRange(i+2,1) ※2行目に出したいとき
185
+ 最後のところに、「sheet.getRange(i+1,1).setValue(mail_body_split[i]);」
186
+
187
+ 2行目に出したいときに、「(i+2,1)」にすれば可能でしょうか。
188
+
189
+
190
+
191
+ ```Google Apps Script
192
+
193
+ /* セルにデータを追加(A1のセル) */
194
+
195
+ for(var i=0; i<mail_body_split.length; i++) { // 配列のデータの数(改行の行数)だけ繰り返す
196
+
197
+ sheet.getRange(i+1,1).setValue(mail_body_split[i]); // 1行ごとに貼り付ける(貼り付けるセルを1行ずつ下にする)
198
+
199
+ }
200
+
201
+ ```
198
202
 
199
203
 
200
204
 

2

情報管理の観点から一部削除

2017/09/11 03:14

投稿

ryuichiro
ryuichiro

スコア9

test CHANGED
File without changes
test CHANGED
@@ -174,10 +174,14 @@
174
174
 
175
175
  **実行結果**
176
176
 
177
+
178
+
177
179
  実行結果先:SpreadSheet参照
178
180
 
179
181
 
180
182
 
183
+
184
+
181
185
  **<課題>**
182
186
 
183
187
  ①余分な改行やスペースが多いので削除したい

1

なし

2017/08/28 09:35

投稿

ryuichiro
ryuichiro

スコア9

test CHANGED
File without changes
test CHANGED
@@ -166,8 +166,6 @@
166
166
 
167
167
  **★完成イメージ**
168
168
 
169
- ![イメージ説明](cbee41546de6616811360d7c54d763e7.png)
170
-
171
169
 
172
170
 
173
171
  ###試したこと
@@ -176,12 +174,8 @@
176
174
 
177
175
  **実行結果**
178
176
 
179
- ![![イメージ説明](ab63f9c83aa39839d58cfcd7e0e6aa0a.png)]
180
-
181
177
  実行結果先:SpreadSheet参照
182
178
 
183
- <https://docs.google.com/spreadsheets/d/14aPnE4XPhKE0umTANhncOxMBHcgF5molXKec7BvPALw/edit#gid=1048866240>
184
-
185
179
 
186
180
 
187
181
  **<課題>**