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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Q&A

解決済

1回答

2899閲覧

スプレッドシートの1セルで「改行を含む文字列」を取得し、1セルに収めてファイル出力させたいです

ratera

総合スコア54

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

0グッド

0クリップ

投稿2022/03/06 20:05

解決したいこと

スプレッドシートの1セルで「改行を含む文字列」を取得し、1セルに収めてファイル出力させたいです。

入出力の期待値
  • 入力

イメージ説明

  • 期待する出力

C3のセルの値をそのまま出力したい
イメージ説明

  • 実際の出力

c3のセルが改行されて出力されてしまった
イメージ説明

コード

function test2(){ var sheetName = 'sheet1'; //CSVファイルにするシート名を指定 var allvalues=[]; //sheetNameの2次元配列をallvalueに結合 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(sheetName); //データ範囲を二次元配列で取得 //var values = sheet.getDataRange().getValues(); var values = sheet.getRange(1,1,4,4).getValues(); Array.prototype.push.apply(allvalues,values); //二次元配列をカンマ区切りの文字列に変換 var csv = allvalues.join('\n'); //Blobオブジェクトの作成 var blob = Utilities.newBlob(csv, MimeType.CSV, sheetName + '.csv'); //CSVファイルの保存先フォルダを指定 var id = '***********************'; //フォルダID var folder = DriveApp.getFolderById(id); //CSVファイルを作成 folder.createFile(blob); }

入力データ

a1 b1 c1 d1
a2 b2 c2 d2
a3 b3 c3\nc3\nc3 d3
a4 b4 c4 d4
a5 b5 c5 d5

実際のコード

function createCSV() { var sheetName = '03/01'; //CSVファイルにするシート名を指定 sheetName=sheetName.split("/"); var startmonth=sheetName[0]; var startday=sheetName[1]; var allvalues=[]; console.log(Object.prototype.toString.call(sheetName)); for(let i=0;i<3;i++){ //sheetNameのインクリメント //sheetName=sheetName.split("/"); //sheetName[1]=Number(sheetName[1])+1; var day=Number(startday)+Number(i); if(day<10){ day=parseInt(day); var zero='0'; day=zero+day; }else{ day=parseInt(day); } //sheetName=sheetName.join("/"); sheetName=startmonth+"/"+day; console.log(sheetName); console.log(Object.prototype.toString.call(sheetName)); //sheetNameの2次元配列をallvalueに結合 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(sheetName); //データ範囲を二次元配列で取得 //var values = sheet.getDataRange().getValues(); var values = sheet.getRange(15,1,48,14).getValues(); //Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数) Array.prototype.push.apply(allvalues,values); } //二次元配列をカンマ区切りの文字列に変換 var csv = allvalues.join('\n'); //var csv=allvalues; //Blobオブジェクトの作成 var blob = Utilities.newBlob(csv, MimeType.CSV, sheetName + '.csv'); //CSVファイルの保存先フォルダを指定 var id = '********************************'; //フォルダID var folder = DriveApp.getFolderById(id); //CSVファイルを作成 folder.createFile(blob); }

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

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

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

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

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

guest

回答1

0

自己解決

ご確認いただきありがとうございます。
以下にて解決しました。
https://teratail.com/questions/250569

投稿2022/03/07 02:26

ratera

総合スコア54

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問