LibreOffice: データベースのデータをスプレッドシートで表示する


LibreOffice の Calc と Base を使い、 データベースの値をスプレッドシート上に取得する方法を紹介します。 スプレッドシートに取得・表示したデータは、表やピボットテーブルに活用することができます。 以前 「Windows, Excel: データベースから直接値を取得して表示する」で、 Excel, ODBC を使ってデータを扱う方法を書きましたが、 LibreOffice を使えばそれも無料でできます。

環境

今回は PostgreSQL につないでデータを表示します。 MySQL など他のデータベースでも可能です。

Windows, Mac 両方の環境で確認しています。

  • Windows 10 / macOS High Sierra 10.13.3
  • LibreOffice 6
  • PostgreSQL 9.5 (SSL ON)

手順

接続設定の作成

LibreOffice Base を起動して、 新しいファイルの作成を行います。

ウィザードが起動しますので、既存のデータベースに接続するように設定を行います。 ODBC を介した接続も可能ですが、 ここでは直接 PostgreSQL に接続するよう設定します。

接続先のデータベースを記述します。

接続時に使用するユーザ名を記述します。 パスワードが必要であればチェックをオンにしてください。 接続確認 (Test Connection) をする場合、 ボタンをクリックするとパスワード入力欄が表示されます。

今後何度も使うデータベースなら、 LibreOffice に登録しておきましょう。 (“Yes, register the database for me” を選択します。)

これで接続設定の作成は終了です。

取得したいデータの定義作成

データベースから取得するデータの定義を行います。 テーブルのデータをそのまま取れればいいという場合は行わなくてOKです。

上で定義した接続設定を開き、 左ペインで “Queries” を選択し、 上部メニューから “Create Query in SQL View” をクリックします。 他に、”Create Query in Design View(デザインビューでのクエリ作成)”、”Use Wizard to Create Query(クエリ作成ウィザードを使用)” があり、そちらで作成することも可能です。

SQL を記述して実行してみます。 実行の方法はいくつかあり、 F5キーを押す、 Edit(編集)メニューの “Run Query(クエリ実行)” を選択する、 ツールバーのボタンをクリックするのいずれでも実行できます。

結果が期待通りであれば、クエリを保存します。 適当なクエリ名を入力してください。 ここでは “Query1” とします。

スプレッドシートにデータを表示する

先ほどの LibreOffice Base を起動した状態で、 LibreOffice Calc を起動して、 データを表示したいシートを選択します。

LibreOffice Base の画面から、 LibreOffice Calc で表示したいクエリを選択して、 Calc のシートへドラッグアンドドロップします。 すると、 Calc 上 にクエリの結果が表示されます。

もし、データベース上のデータやクエリの定義が変わり、最新のデータを表示したいという場合は、データ表示エリアのセルを選択して、Dataメニューの Refresh Range をクリックします。 すると最新データが表示されます。

このようにして取得したデータをもとに、ピボットテーブルなどが作成できます。