質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

671閲覧

GASでドキュメントの指定文字列をスプレッドシートに書き出したいです

mizuno12

総合スコア5

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2022/05/17 23:37

ドキュメントの文章の中から,指定した文字で開始する文字列を取得し,スプレッドシートのセルに書き出したいです。セルに書き出すときは1列に並べたいです。

例えば,ドキュメントの文章が以下のように改行されている場合,

りんご 100
みかん 200
ばなな 300
りんご 400
ぶどう 500
ばなな 600

この中なら「りんご」で開始する文字列を取得し,以下のようにスプレッドシートに1列で各セルに書き出したいです。
※「りんご 100」と「りんご 400」は別のセル

りんご 100
りんご 400

良い方法があれば教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2022/05/18 00:26

何が分からないのでしょうか? ドキュメントの文章を取得する方法ですか? 取得した文章を行に分解する方法ですか? 分解したものが「りんご」か判断する方法ですか? スプレッドシートのセルに書き出す処理ですか? 現状の質問ですとただやりたいことを記載した丸投げの質問と推奨されない質問です。 具体的にどのようなコードを書いてどこが不明なのか明確にしましょう。
guest

回答1

0

ベストアンサー

下記のコードで実施は可能になりますが、まだ問題もあります。

  • 取得したい文字を変更する場合、「searchStr」の内容を手動で変えないといけない
  • ドキュメント内容の「〇〇 △△」の区切りが「全角スペース」でない場合、1列で各セルに書き出すことができない

gs

1function myFunction1111() { 2 let doc = DocumentApp.openById('XXX') 3 4 let docTextArray = doc.getBody().getText().split('\n') 5 let searchStr = /^りんご/ 6 let sheetValues = [] 7 8 docTextArray.forEach(function(v) { 9 if (v.match(searchStr)) { 10 sheetValues.push(v.split(' ')) 11 } 12 }) 13 14 if (sheetValues.length == 0) return 15 16 let ss = SpreadsheetApp.getActiveSpreadsheet() 17 let sheet = ss.getSheetByName('シート9') 18 19 sheet.getRange(1, 1, sheetValues.length, sheetValues[0].length).setValues(sheetValues) 20}

ご確認の方、よろしくお願いします。

投稿2022/05/18 00:42

k.a_teratail

総合スコア845

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問