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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

1053閲覧

【GAS】データをスプレッドーシートに出力するときにセルの最初と最後に入る改行を削除したい

1995nihong

総合スコア24

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2019/05/20 09:52

編集2019/05/20 10:18

Google Apps Scriptを使ってGoogleドキュメントやGmailなどいろんな情報をSpreadsheetに出力しようとしています。

その中で、Googleドキュメントの表の中に書いたテキストを取得してSpreadsheetに出力させようとすると、
=-=-=
(改行)
テキストテキスト
テキストテキスト

テキストテキスト
(改行)
=-=-=
というように、取得したい情報の前後に改行が入ってしまうことがあります。
(おそらく表を使っているからだと思います。)

replace(/[\r\n]+/g,"")

を使うと、元々入れていた改行も削除されてしまうので、
意図せず入ってしまう前後の改行だけをどうにか削除したいと思っています。

削除する方法はないでしょうか?

コードは下記です。

function write() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var doc = DocumentApp.openById('google docsのID'); var body = doc.getBody().getText(); sheet.getRange(1,1).setValue(body);  }

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

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

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

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

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

papinianus

2019/05/20 10:06

コードをお示しください。高い可能性として、それはバグというものではないかと疑っております。バグで得られた望まない結果をバグを治すのではなくバグを前提に結果を修正してしまうと取り返しがつかなくなるのでお気をつけください
1995nihong

2019/05/20 10:19

ありがとうございます。コードを追記しました。 バグというよりは、表を使っていることにより、枠の部分が改行になってしまうのだと思います。 なので、ドキュメントのデータを取得して、スプレッドシートに出力する前に改行部分を削除する処理を入れられればと思っております。。
papinianus

2019/05/20 10:22

これだけシンプルだとバグではなさそうですね。失礼しました
guest

回答2

0

ベストアンサー

gasで、使えるかは調べてないですが、前後の余計な改行はtrim()でとれます。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/trim

gasで使えるなら↓こう書きます(多分使えると思います)。

javascript

1doc.getBody().getText().trim();

投稿2019/05/20 10:08

編集2019/05/20 10:23
papinianus

総合スコア12705

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

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

miyabi-sun

2019/05/20 10:24

GASはJavaScript1.8に独自要素をいろいろ足してES5にギリギリ届かないくらいにしてる言語なのでいけそうではあります。
papinianus

2019/05/20 10:30

ありがとうございます。以前、まさにmiyabi-sun様の回答で拝見してました。 質問者様へ 最悪ポリフィルあるので、それでなんとか。
1995nihong

2019/05/20 11:32

ありがとうございます! ちなみに表の行列ごとにセルを分けるために、ドキュメントの各表に「_」を追加して、 さらにコードに下記を追加してみたのですが、 再び空行が出てきてしまいました。。 この再び出てきてしまった改行をtrimで削除するにはどう書けば良いでしょうか? var cell = body.split('_'); sheet.getRange(1,1).setValue(cell[0]);  sheet.getRange(1,2).setValue(cell[1]);
papinianus

2019/05/20 22:04

上手く理解できてないかもしれないですが多分こう sheet.getRange(1,1).setValue(cell[0].toString().trim());
1995nihong

2019/05/21 03:43

やりたいことがうまくできました!ありがとうございます!
guest

0

セルに出力するデータのソースとセルに出力した後のセルのデータを比較して不自然に増えた改行だけ消せばいいでしょう

投稿2019/05/20 09:56

hentaiman

総合スコア6421

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問