アクティブなスプレッドシートのデータをGoogleドキュメントに転記して名前をつけて特定のフォルダに保存する
このスクリプトは、Googleスプレッドシートのデータを取得し、新しいGoogleドキュメントに転記してから、指定されたフォルダに保存するGAS(Google Apps Script)です。
function copyToDocumentAndSave() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var values = sheet.getDataRange().getValues();
// 新しいGoogleドキュメントを作成
var doc = DocumentApp.create("新しいドキュメント");
// GoogleドキュメントのBodyを取得
var body = doc.getBody();
// スプレッドシートのデータをGoogleドキュメントに転記
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[0].length; j++) {
var value = values[i][j];
body.appendParagraph(value);
}
body.appendParagraph("\n");
}
// 保存するフォルダを指定
var folder = DriveApp.getFolderById("フォルダのID");
// Googleドキュメントを指定のフォルダに移動
var docFile = DriveApp.getFileById(doc.getId());
folder.addFile(docFile);
DriveApp.getRootFolder().removeFile(docFile);
}
解説
- まずアクティブなスプレッドシートを取得し、
getDataRange()
メソッドを使用して、スプレッドシートの全範囲の値を取得します。 - 次に、
DocumentApp.create()
メソッドを使用して、新しいGoogleドキュメントを作成します。 getBody()
メソッドを使用して、Googleドキュメントの本文部分を取得し、appendParagraph()
メソッドを使用して、スプレッドシートのデータをGoogleドキュメントに転記します。- 最後に、
DriveApp.getFolderById()
メソッドを使用して、保存するフォルダを指定します。 - そして、
addFile()
メソッドとremoveFile()
メソッドを使用して、Googleドキュメントを指定のフォルダに移動します。
ドキュメントの名前に現在の時間を追加
function copyToDocumentAndSave() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var values = sheet.getDataRange().getValues();
// 日時のフォーマットを設定
var date = new Date();
var formattedDate = Utilities.formatDate(date, "JST", "yyyyMMdd_HHmmss");
// 新しいGoogleドキュメントを作成
var doc = DocumentApp.create("新しいドキュメント_" + formattedDate);
// GoogleドキュメントのBodyを取得
var body = doc.getBody();
// スプレッドシートのデータをGoogleドキュメントに転記
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[0].length; j++) {
var value = values[i][j];
body.appendParagraph(value);
}
body.appendParagraph("\n");
}
// 保存するフォルダを指定
var folder = DriveApp.getFolderById("フォルダのID");
// Googleドキュメントを指定のフォルダに移動
var docFile = DriveApp.getFileById(doc.getId());
folder.addFile(docFile);
DriveApp.getRootFolder().removeFile(docFile);
}
解説
- まず日時のフォーマットを設定します。
Utilities.formatDate()
メソッドを使用して、現在の日時を “yyyyMMdd_HHmmss” の形式でフォーマットします。 - 次に、
DocumentApp.create()
メソッドを使用して、新しいGoogleドキュメントを作成します。 getBody()
メソッドを使用して、Googleドキュメントの本文部分を取得し、appendParagraph()
メソッドを使用して、スプレッドシートのデータをGoogleドキュメントに転記します。- 最後に、
DriveApp.getFolderById()
メソッドを使用して、保存するフォルダを指定します。 - そして、
addFile()
メソッドとremoveFile()
メソッドを使用して、Googleドキュメントを指定のフォルダに移動します。
Googleドキュメントにデータを転記する
アクティブシートからGoogleドキュメントにデータを転記し、名前をつけて保存する
function myFunction() {
var activeSheet = SpreadsheetApp.getActiveSheet();
var range = activeSheet.getRange("A1:B5");
var values = range.getValues();
var docName = "My Document";
var docMimeType = "application/vnd.google-apps.document";
var docFile = DriveApp.createFile(docName, '', docMimeType);
var docBody = DocumentApp.openById(docFile.getId()).getBody();
for (var i = 0; i < values.length; i++) {
var row = values[i];
for (var j = 0; j < row.length; j++) {
var cell = row[j];
docBody.appendParagraph(cell);
}
}
docFile.setName("My Document Name");
docFile.saveAndClose();
}
解説
- 転記したいデータの範囲を取得する
- 最初に、アクティブなスプレッドシートから転記したいデータの範囲を取得します。例えば、以下のようにgetDataRangeメソッドを使用して、A1セルからB5セルまでの範囲を取得することができます。
- Googleドキュメントを作成する
- 次に、Googleドキュメントを作成します。これには、createFileメソッドを使用して、Google Driveに新しいドキュメントを作成します。以下の例では、ファイル名を「My Document」とし、ファイルのMIMEタイプを「Google Docs」に設定しています。
- データをGoogleドキュメントに転記する
- 次に、取得したデータをGoogleドキュメントに転記します。これには、getBodyメソッドを使用して、ドキュメントの本文を取得し、appendParagraphメソッドを使用して、データを書き込みます。
- 名前をつけて保存する
- 最後に、Googleドキュメントに名前をつけて保存します。これには、setNameメソッドを使用して、ドキュメントに名前を付け、saveAndCloseメソッドを使用して、変更を保存します。
Googleドキュメントに吐き出して保存
function transferToGoogleDoc() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
var docName = "My Document";
var docFile = DocumentApp.create(docName);
var docBody = docFile.getBody();
for (var i = 0; i < values.length; i++) {
var row = values[i];
var text = row.join('\t');
docBody.appendParagraph(text);
}
docFile.saveAndClose();
}
アクティブシートの内容をテキスト形式にして保存する方法
function saveActiveSheetAsText() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
// テキストファイルの作成
var file = DriveApp.createFile('SheetData.txt', '');
// テキストファイルにデータを書き込む
var fileContent = values.map(function(row) {
return row.join('\t');
}).join('\n');
file.setContent(fileContent);
// テキストファイルを保存する
var fileId = file.getId();
var fileUrl = 'https://drive.google.com/uc?export=download&id=' + fileId;
var html = '<a href="' + fileUrl + '">Download file</a>';
var userInterface = HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showModalDialog(userInterface, 'File Download');
}
アクティブシートのURLをGoogleドキュメントに転記する方法
このコードを実行するには、Googleドキュメントを開いた状態で、スクリプトエディターから実行する必要があります
function copySpreadsheetURL() {
// アクティブなスプレッドシートを取得
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなスプレッドシートのURLを取得
var spreadsheetURL = activeSpreadsheet.getUrl();
// Googleドキュメントを取得
var document = DocumentApp.getActiveDocument();
// カーソル位置にスプレッドシートのURLを挿入
var cursor = document.getCursor();
if (cursor) {
var element = cursor.insertText(spreadsheetURL);
element.setLinkUrl(spreadsheetURL);
}
}
解説
getActiveSpreadsheet()
メソッドを使用して、アクティブなスプレッドシートを取得getActiveSpreadsheet()
メソッドを使用して、アクティブなスプレッドシートを取得getActiveDocument()
メソッドを使用して、Googleドキュメントを取得- カーソル位置にスプレッドシートのURLを挿入するために、
insertText()
メソッドを使用して、テキストを挿入 setLinkUrl()
メソッドを使用して、URLをリンクに設定
コメント