[Power Query] Googleドライブに保存したファイルを読み込む


ローカルドライブ上のCSVファイルをPower Queryで読み込むときは「テキストまたはCSVから」というコネクタが用意されていますが、Google ドライブ上に保存したCSVファイルを読み込む場合はどうすればよいか説明します。

ちなみに OneDrive の場合は、公式ヘルプにやり方が説明されています。
https://docs.microsoft.com/ja-jp/power-bi/desktop-use-onedrive-business-links

方法

「データを取得」で「Web」コネクタを選択し、先ほどコピーしたリンクを貼り付けます。

URLのhttps://drive.google.com/open?id=xxxx/open/ucに書き換えて「OK」を押します。https://drive.google.com/uc?id=xxxxというようなURLになります。

普通のCSVコネクタと同じようなダイアログが開きます。あとはCSVコネクタと同じです。

Power Query コード

コードはこんな感じになります。

let
    ソース = Csv.Document(Web.Contents("https://drive.google.com/uc?id=xxxx"), ...),
    昇格されたヘッダー数 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),
    ...

まとめ

  • Google ドライブのファイルのURLはhttps://drive.google.com/uc?id=xxxx
  • Webコネクタでバイナリを取ってきて、Csv.Document()関数に渡す。
  • まだ試してはいないが、原理的にはCSVだけでなく、Excel、XML、JSONなど、バイナリ形式のものであれば何でも読み込めるはず。