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

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

新規登録して質問してみよう
ただいま回答率
85.49%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Google スプレッドシート

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

Google Apps Script

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

Q&A

解決済

1回答

3384閲覧

複数のスプレッドシートをcsvにエクスポートし保存するやりかた教えてください

ponpon00

総合スコア14

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Google スプレッドシート

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

Google Apps Script

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

0グッド

0クリップ

投稿2019/09/05 14:06

前提・実現したいこと

こんにちは
複数のスプレッドシートをcsvにエクスポートし、それれのスプレッドシートの名前で保存たいのですが
最後のスプレッドシートしか保存することができません。
全てのシートをそれぞれの名前で別々に保存するやりかたを教えてください。

該当のソースコード

function createCsv() { var objSheets;   objSheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();   for (i = 0; i < objSheets.length; i++) { var sheet = objSheets[i]; var csvData = loadData(sheet);    } writeDrive(csvData, sheet.getName()); } function loadData(sheet) { var data = sheet.getDataRange().getValues(); var csv = ''; for(var i = 0; i < data.length; i++) { csv += data[i].join(',') + "\r\n"; } return csv; } function writeDrive(csv,fileName) { var drive = DriveApp.getFolderById('ファイルID'); var contentType = 'text/csv'; var charset = 'utf-8'; var blob = Utilities.newBlob('', contentType, fileName).setDataFromString(csv, charset); drive.createFile(blob); }

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

閉じカッコの位置を変えてください

function createCsv() { var objSheets; objSheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); for (i = 0; i < objSheets.length; i++) { var sheet = objSheets[i]; var csvData = loadData(sheet); writeDrive(csvData, sheet.getName()); } }

投稿2019/09/05 22:43

papinianus

総合スコア12705

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

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

ponpon00

2019/09/06 01:11

しっかり複数のシートを保存できました。ありがとうございます。
ponpon00

2019/09/06 02:42 編集

もう一つ質問させてください。 フォルダにその日の日付を指定し、そこに全てのシートを保存したくファンクション myFunctionを書いたのですが どのようにつなげるのかで困っています。writeDriveファンクションのdriveなどをどのように変更すればよろしいでしょうか? よろしくお願いします。 function myFunction() { var folderid = 'フォルダid';  var folder = DriveApp.getFolderById(folderid);  var date = Utilities.formatDate(new Date(), "Asia/Tokyo", "yyyy/MM/dd"); var foldername = date;  var newfolder = folder.createFolder(foldername);  } function createCsv() { var objSheets;   objSheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();   for (i = 0; i < objSheets.length; i++) { var sheet = objSheets[i]; var csvData = loadData(sheet); writeDrive(csvData, sheet.getName()); } } function loadData(sheet) { var data = sheet.getDataRange().getValues(); var csv = ''; for(var i = 0; i < data.length; i++) { csv += data[i].join(',') + "\r\n"; } Logger.log(csv) return csv; } function writeDrive(csv,fileName) { var drive = DriveApp.getFolderById('ファイルid'); var contentType = 'text/csv'; var charset = 'utf-8'; var blob = Utilities.newBlob('', contentType, fileName).setDataFromString(csv, charset); drive.createFile(blob); }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問