Help us understand the problem. What is going on with this article?

Google Apps Scriptを使ってエクセルファイルをスプレッドシートに変換する

More than 1 year has passed since last update.

概要

この記事ではGoogle Apps Script(GAS)を使ってエクセルファイルをスプレッドシートに変換する方法について紹介させていただきます。ここではエクセルファイルの場所は①Google Drive上、あるいは②どこかのサイト上(直リンク可能)にあると想定します。

エクセルファイルをスプレッドシートに変換

準備

下記のサンプルスクリプトはスクリプトエディタへ貼り付けて使用してください。スクリプトを実行する前に次の手順でAPIを使用するための下記2点の設定を行ってください。どちらから行っても問題ありません。

  • スクリプトエディタ -> リソース -> Googleの拡張サービス -> DriveAPI v2を有効にする

  • スクリプトエディタ -> リソース -> Cloud Platform プロジェクト -> APIコンソールを表示 -> 左側のライブラリを選択 -> Drive APIを検索 -> DriveAPIを有効にする

1. エクセルファイルがGoogle Drive上にある場合

このサンプルは、Google Drive上にあるエクセルファイルをスプレッドシートに変換する状況を想定しています。fileID, folderID, filenameを入力して実行してください。

var fileID = "#####";
var folderID = "#####";
var filename = "filename";

var res = Drive.Files.insert({
  "mimeType": "application/vnd.google-apps.spreadsheet",
  "parents": [{id: folderID}],
  "title": filename
}, DriveApp.getFileById(fileID).getBlob());

もしも、ファイルIDが分からない場合は、下記のようなスクリプトでファイル名に対するファイルIDを取得することができます。もしも同一ファイル名が複数ある場合は複数のIDが返されます。

var filename = "filename";

var res = Drive.Files.list({
  q:      "title=filename and trashed=false",
  fields: "items(id)"
});

2. エクセルファイルがどこかのサイト上にある場合

このサンプルは、どこかのサイト上にエクセルファイルが存在し、そこからダウンロードしてスプレッドシートに変換する状況を想定しています。fileURL, folderID, filenameを入力して実行してください。このサンプルの動作確認を行った際は、DropBoxへサンプルをアップロードし、直リンクのURLを作成して行いました。

var fileURL = "https://#####/sample.xlsx";
var folderID = "#####";
var filename = "filename";

var res = Drive.Files.insert({
  "mimeType": "application/vnd.google-apps.spreadsheet",
  "parents": [{id: folderID}],
  "title": filename
}, UrlFetchApp.fetch(fileURL).getBlob());

DriveApp.getFileById(fileID)UrlFetchApp.fetch(fileURL)に変更するだけでOKです。
mimeTypeを変更することで、ワードやパワーポイントのファイルへの対応も可能です。mimeTypeの種類はこちらをご覧ください。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away