スプレットシートをダウロードしてエクセルファイルで保存
GASを使ってスプレッドシートをダウンロードしてパソコンのデスクトップにエクセルファイルとして保存する
function downloadAsExcel() {
// 保存するフォルダの名前を指定
const folderName = "ダウンロード";
// アクティブなスプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// スプレッドシートをExcelファイルとしてダウンロード
const blob = ss.getBlob().setName(ss.getName() + ".xlsx");
// ユーザーのデスクトップにある指定したフォルダを取得
const folder = DriveApp.getFolderByName(folderName);
if (!folder) {
// 指定したフォルダが存在しない場合は作成する
DriveApp.createFolder(folderName);
folder = DriveApp.getFolderByName(folderName);
}
// ファイルをフォルダに保存
folder.createFile(blob);
// 完了メッセージを表示
SpreadsheetApp.getUi().alert("Excelファイルをダウンロードしました。");
}
解説
- Google Drive APIの有効化
- まず、Google Drive APIを有効にする必要があります。具体的には、Google Cloud Platformのコンソールにアクセスし、プロジェクトを作成してDrive APIを有効にします。このプロジェクトにはスクリプトエディタからアクセスする必要があります。
- 保存するフォルダの名前を
folderName
で指定しています。ユーザーのデスクトップにある指定したフォルダを取得するため、DriveApp.getFolderByName()
を使用しています。もし指定したフォルダが存在しない場合は、DriveApp.createFolder()
を使用して新規にフォルダを作成しています。ファイルの保存には、folder.createFile()
を使用しています。
その他のスクリプト
function saveActiveSheetToExcel() {
// フォルダIDを指定
const folderId = "フォルダのIDをここに入力する";
// アクティブなスプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// スプレッドシートをExcelファイルとしてダウンロード
const blob = ss.getBlob().setName(ss.getName() + ".xlsx");
// フォルダを取得
const folder = DriveApp.getFolderById(folderId);
// ファイルをフォルダに保存
const file = folder.createFile(blob);
// ダウンロードしたファイルを開く
const fileId = file.getId();
const url = "https://drive.google.com/uc?export=download&id=" + fileId;
const htmlOutput = HtmlService.createHtmlOutput(`<script>window.open("${url}", "_blank"); google.script.host.close();</script>`);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, "ダウンロード完了");
}
解説
- フォルダのIDを指定します。このIDは、Googleドライブの特定のフォルダのIDを取得して指定する必要があります。
- アクティブなスプレッドシートを取得します。
- スプレッドシートをExcelファイルとしてダウンロードします。
- フォルダを取得します。
- ファイルをフォルダに保存します。
- ダウンロードしたファイルを開くためのURLを作成します。
- ダイアログを表示して、ダウンロードが完了したことをユーザーに通知します。
このコードは、GASのSpreadsheetApp
とDriveApp
を使用しています。SpreadsheetApp
は、スプレッドシートの操作を行うためのクラスであり、DriveApp
は、Googleドライブのファイル操作を行うためのクラスです。
コメント