質問編集履歴
3
更にわかりやすく変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
|
2
|
+
|
1
3
|
### 実現したいこと
|
2
4
|
|
3
5
|
手持ちの本をOCRで読み込み、スプレッドシートに転記したいと考えています。
|
@@ -32,28 +34,28 @@
|
|
32
34
|
const FOLDER_ID = "●●●"; // Google DriveのフォルダID
|
33
35
|
|
34
36
|
function doPost(e) {
|
35
|
-
// LINEからPOSTされるJSON形式のデータをGAS
|
37
|
+
// LINEからPOSTされるJSON形式のデータをGAS形式(JSオブジェクト)に変換
|
36
38
|
var json = JSON.parse(e.postData.contents);
|
37
39
|
|
38
|
-
// LINEから送信された
|
40
|
+
// LINEから送信された画像を取得
|
39
41
|
var img_url = LINE_DATA_ENDPOINT + json.events[0].message.id + "/content";
|
40
42
|
var img_options = { "headers" : { 'Authorization': 'Bearer ' + ACCESS_TOKEN } };
|
41
43
|
const blob = UrlFetchApp.fetch(img_url, img_options).getBlob();
|
42
44
|
|
43
|
-
// Google Driveに
|
45
|
+
// Google Driveに画像をアップ>OCRを同時実行>Googleドキュメントに保存
|
44
46
|
var driveOptions = {
|
45
47
|
"title": "test.jpg",
|
46
48
|
"parents": [{id: FOLDER_ID}]
|
47
49
|
};
|
48
50
|
const image = Drive.Files.insert(driveOptions, blob, { "ocr": true, "ocrLanguage": "ja" });
|
49
|
-
var ocrText = DocumentApp.openById(image.id).getBody().getText(); // ドキュメント内のテキスト
|
51
|
+
var ocrText = DocumentApp.openById(image.id).getBody().getText(); // ドキュメント内のテキスト取得
|
50
52
|
|
51
|
-
// スプレッドシートに読み取った内容を書
|
53
|
+
// スプレッドシートに読み取った内容を書込
|
52
|
-
var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("
|
54
|
+
var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("●●●");
|
53
55
|
var lastRow = sheet.getLastRow() + 1;
|
54
56
|
sheet.getRange(lastRow, 1).setValue(ocrText);
|
55
57
|
|
56
|
-
// 読
|
58
|
+
// 読取後、指定フォルダ内のファイルすべて削除
|
57
59
|
var folder = DriveApp.getFolderById(FOLDER_ID);
|
58
60
|
var files = folder.getFiles();
|
59
61
|
while(files.hasNext()){
|
@@ -85,7 +87,7 @@
|
|
85
87
|
上記コードのほか、appendRowも試しましたが、上書きされました。
|
86
88
|
|
87
89
|
```GoogleAppsScript
|
88
|
-
var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("
|
90
|
+
var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("●●●");
|
89
91
|
sheet.appendRow(ocrText);
|
90
92
|
```
|
91
93
|
|
2
ステップをわかりやすく分解して追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,17 +1,26 @@
|
|
1
1
|
### 実現したいこと
|
2
2
|
|
3
|
-
手持ちの本を
|
3
|
+
手持ちの本をOCRで読み込み、スプレッドシートに転記したいと考えています。
|
4
|
-
|
5
|
-
(索引がついていない
|
4
|
+
(索引がついていない図鑑本の全文検索がしたい)
|
6
5
|
|
7
6
|
### 前提
|
7
|
+
作りたいのは以下です。
|
8
8
|
|
9
|
+
LINEに写メが送られたら
|
10
|
+
↓
|
11
|
+
Googole Driveに画像を保存
|
12
|
+
↓
|
13
|
+
Drirveに新たな画像が保存されたらGoogleドキュメントで画像を開く(OCR化)
|
14
|
+
↓
|
9
|
-
|
15
|
+
Googleドキュメントのテキストをスプレッドシートに転記(1画像1セル)
|
16
|
+
↓
|
10
|
-
|
17
|
+
Google Driveの画像とドキュメントファイルは削除
|
18
|
+
↓
|
19
|
+
LINEで書込完了と返事
|
20
|
+
|
11
21
|
|
12
22
|
### 発生している問題・エラーメッセージ
|
13
23
|
A1、A2と、最終行に1ページごとのテキストを追加していきたいのですが、A1に上書きされてしまいます。
|
14
|
-

|
15
24
|
|
16
25
|
### 該当のソースコード
|
17
26
|
|
@@ -55,7 +64,7 @@
|
|
55
64
|
var message = {
|
56
65
|
"replyToken" : json.events[0].replyToken,
|
57
66
|
"messages" : [{"type": "text",
|
58
|
-
"text" : "書
|
67
|
+
"text" : "書込完了"}] // 応答メッセージの内容
|
59
68
|
};
|
60
69
|
// LINE側へデータを返す際に必要となる情報
|
61
70
|
var options = {
|
1
誤りがあったため修正(コードの中に画像を貼り付けていたので削除)
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,7 +40,8 @@
|
|
40
40
|
var ocrText = DocumentApp.openById(image.id).getBody().getText(); // ドキュメント内のテキストを取得
|
41
41
|
|
42
42
|
// スプレッドシートに読み取った内容を書き込み
|
43
|
-
|
43
|
+
var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("test");
|
44
|
+
var lastRow = sheet.getLastRow() + 1;
|
44
45
|
sheet.getRange(lastRow, 1).setValue(ocrText);
|
45
46
|
|
46
47
|
// 読み取り後は指定したフォルダ内のファイルすべて削除
|