MySQL for Excelの使い方と使い道。

MySQL for Excelが便利そうかなぁと思ったので使ってみました。

インストール環境

今回インストールする環境です。

  • OS:Windows7
  • Excel 2013
  • MySQLサーバーもクライアントもインストールされていないので一緒にインストール

インストールとセットアップ

まずこちらのページより、MySQLのインストールパッケージをダウンロードします。

th_MyEx001

今回はWEBインストーラーでじゃない、234.7Mのものをダウンロードしました。

「Download」ボタンをクリックするとログインするかどうか聞かれます。「No thanks,..」をクリックすればそのままダウンロードできます。

th_MyEx002

ダウンロードが完了したらmsiファイルをダブルクリックしてインストーラーを起動します。

th_MyEx003

「Install MySQL Products」をクリック

th_MyEx004

「I accept the license terms」にチェックを入れて「Next」ボタンをクリック

th_MyEx005

次にアップデートがないかチェックします。
インターネットに接続されていないなどの特別な事情があれば、「Skip check for updates」にチェックいれてこのプロセスをスキップします。

th_MyEx006

チェックが完了すると以下の様になります。
そのまま「Next」ボタンをクリック

th_MyEx007

次にインストールする内容とインストールするフォルダの設定を行います。
今回はMySQLサーバーも同時にインストールするため、そのまま「Next」をクリックします。
既に別のMySQLがインストールされて個別にインストールする場合はこで設定が可能(なはず)です。

th_MyEx008

インストールするパッケージに必要な条件が表示されます
「MySQL Workbench」には「Microsoft Visual C++ 2010 32-bit runtime」が、「MySQL for Excel」には「Visual Studio Toolsfor Office 2010 Runtime」がそれぞれ足りていないことがわかります。「Execute」をクリックするとそれぞれのインストールが開始されます。

th_MyEx009

「Microsoft Visual C++ 2010 32-bit runtime」のインストールが開始されます。「同意する」にチェックを入れて「インストール」ボタンをクリックしてください。

th_MyEx010

インストールが完了したら、「完了」ボタンをクリック

th_MyEx011

次に「Visual Studio Toolsfor Office 2010 Runtime」のインストールが開始されます。「次へ」ボタンをクリックしてください。

th_MyEx012

「同意する」にチェックを入れて「インストール」ボタンをクリック

th_MyEx013

インストールが完了したら、「完了」ボタンをクリック

th_MyEx014

環境によっては必要な条件も変わってくるかと思いますので、場合に応じて必要な物をインストールしてください。

条件が揃うと以下の様になりますので、「Next」ボタンをクリックします。

th_MyEx015

インストールされるMySQL製品の一覧が表示されます。そのまま「Execute」ボタンをクリック。

th_MyEx016

インストールが完了すると以下の様に表示されます。
今回はConnecter/ODBCのダウンロードに失敗してしまいました。これは後からでもインストール可能なので、そのまま「Next」ボタンをクリックします。

th_MyEx017

インストール後のセットアップを行います。「Next」ボタンをクリック。

th_MyEx018

そのまま「Next」ボタンをクリックして次へ。

th_MyEx019

rootのパスワードを入力して「Next」ボタンをクリックしてください。

th_MyEx020

ここも特に理由がなければそのまま「Next」ボタンをクリックして次へ進みます。

th_MyEx021

そのまま次へ

th_MyEx022

すべての設定が完了すると以下の用になります。「Next」ボタンをクリックして次へ進みます。

th_MyEx023

以上でインストールは完了になります。「Finish」ボタンをクリックししてインストーラーを終了してください。

th_MyEx024

MySQL for Excelの使い方

ExcelからMySQLサーバーへの接続

MySQL for Excelを使用するにはExcelを起動し、「データ」タブから「MySQL for Excel」をクリックしてください。
そして、MySQLサーバーへの接続を作成するために「New Connection」をクリックします。

th_MyEx025

MySQLサーバーの情報を入力します。
Connection Nameは任意のものを入力してください。
HostNameにはそのまま「localhost」を指定し、user/passwordはインストール時に設定したものを入力てください。MySQLのインストール後にMySQLサーバーのサービスは起動しているはずなので、そのまま接続可能なはずです。

th_MyEx027

「Test Connection」ボタンをクリックして、接続のテストを行うことができます。問題がなければ以下の様に表示されます。

th_MyEx028

「OK」ボタンをクリックすると、接続の設定が追加されます。

th_MyEx029

接続の設定をダブルクリックすると、MySQLサーバーへ接続されます。接続が完了するとデータベース(スキーマ)の一覧が表示されます。

th_MyEx030

データベース(スキーマ)追加

データベース(スキーマ)を追加するには「Create New Shema」をクリックします。

th_MyEx031

データベース(スキーマ)名を入力して「OK」ボタンをクリックしてください。

th_MyEx032

追加したデータベース(スキーマ)名が表示されていれば完了です。

th_MyEx033

データからテーブルを作成

テーブルを追加したいデータベース(スキーマ)をダブルクリックします。

th_MyEx033

Excelのシートにテーブルのデータを想定したデータを入力し、「Export Excel Data to New Table」をクリックします。

th_MyEx034

テーブルの情報を入力し「Export Data」ボタンをクリックするとテーブルが作成できます。

th_MyEx035

th_MyEx036

「Export Data」の▼ボタンをクリックしてデータも同時に登録する(Export Data)か、テーブルのみ作成する(Create Table)か選択出来ます。

登録が成功すれば以下の様に表示されます。

th_MyEx037

「Tables」の左の▶をクリックすると先ほど登録したテーブルが表示されます。

th_MyEx038-2

テーブルデータ取り込み

テーブルのデータをExcelのシートに取り込むことができます。

データを取り込むには「Import MySQL Data」をクリックします。

th_MyEx039

テーブルのデータが表示されます。問題がなければそのまま「Import」ボタンをクリック

th_MyEx040

テーブルのデータがExcelのシートにインポートされました。

th_MyEx041

テーブルデータの操作

Excelのシートを使って、MySQLのテーブルのデータを編集することもできます。
Excelからデータを編集するには、編集する対象のテーブルを選択して「Edit MySQL Data」をクリックします。

th_MyEx042

インポートの時と同様にテーブルのデータが表示されます。こちらも内容に問題がなければ「Import」ボタンをクリックしてデータを一旦取り込みます。

th_MyEx043

取り込み後は以下の様になります。

th_MyEx044

th_MyEx045

データを変更したセルは水色で表示されます。この時点ではMySQLサーバーのテーブルにはデータは反映されていません。

th_MyEx046

「Commit Changes」ボタンをクリックするとMySQLサーバーのテーブルにデータが反映されます。反映されたデータは緑色になります。

th_MyEx047

黄色のセルにデータを入力することでデータをINSERTできます。

th_MyEx048

通常のExcelの操作の列の削除で行をDELETEすることができます。

th_MyEx049

列の追加・削除はできません。

データの変更に失敗した場合は以下の様に表示されます。

th_MyEx050-1

このような場合は「Show Details」ボタンをクリックし、エラーの内容を確認することができます。

th_MyEx050-2

コミット前のデータは「Revert Data」で元に戻すとができます。注1

th_MyEx050

シートのデータからテーブルにデータを挿入

既存のExcelのデータをテーブルに挿入することができます。
データをテーブルに挿入するには「Append Excel Data to Table」をクリックします。

th_MyEx051

シートのデータとテーブルのデータのマッピングを行います。ドラッグアンドドロップで設定できます。
設定したマッピング情報は「Store Mapping」で保存し使いまわすことができます。
また、「First Row Contains Column Name」にチェックを入れることで一行目のデータをカラム名として扱うことができます。

「Append」ボタンでデータを取り込みます。

th_MyEx052

正常に取り込めた場合は以下の様に表示されます。

th_MyEx053

エラーがあった場合は以下の様に表示されます。

th_MyEx054

こちらの場合も「Show Details」ボタンをクリックし、エラーの内容を確認することができます。

th_MyEx055

ビュー・プロシージャについて

一応ビュー・プロシージャの機能もついていますが、MySQL for Excel上でCREATEできなかったのと、下記の様に直接作成して試してみたのですが、データの参照のみ可能だったので割愛します。

mysql> CREATE VIEW test_view AS SELECT * FROM test;
Query OK, 0 rows affected (0.05 sec)

mysql> CREATE PROCEDURE test() SELECT 1;
Query OK, 0 rows affected (0.01 sec)

感想

出来ることは少ないですが、既存のExcel(もしくはCSV)のデータからテーブルにインポートする際は便利かも。データの移行作業とかうまい具合な状況が揃えば是非使ってみたいところ。

シートから直接テーブルのデータを操作出来るのは一見「おおっ!」って思うのですが、多分使わないだろうなぁ。開発中に使用する分には便利かも。
運用に乗っかってデータが大きくなると表から探すのとか無理ゲー。

SQLの実行結果をシートに落としてレポート的な利用方法ができるかなぁって、SQLは直接実行できない模様。この辺はストアド・プロシージャとかビューでなんとか出来そうかな。


注釈

  1. 「Refresh Data From DB」はMySQLサーバー上のデータでExcelのデータを更新します。「Revert Changed Data」はExcel上で変更されたデータが元に戻るだけで、MySQLサーバーのデータは反映されません。

コメントを残す