例文を使って繰り返し業務を時短

【GAS】GスプシからGドキュメントにデータを転記する

【GAS】GスプシからGドキュメントにデータを転記する方法 GAS

アクティブなスプレッドシートのデータを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をリンクに設定

コメント

タイトルとURLをコピーしました