刹那(せつな)の瞬き

Willkömmen! Ich heiße Setsuna. Haben Sie etwas Zeit für mich?

Office: Excel2011はHTML形式ならいけそう?

昨日のエントリーの続きです。

Excel2011で外部データソースの「データベース」ボタンの利用は諦めました。
代わりと言っては何ですが、その隣の「HTML」ボタンはどうなんでしょう?

結論から言います。
SQLServerにアクセスした結果をHTML形式に加工したファイルはいい感じにインポートできました。

しかし、ここで残念なお知らせです。
HTML形式のインポート処理は安定しません。クラッシュする場合があります。

方法1. 外部データソースの「HTML」ボタンから操作 → 高確率でクラッシュ。※最悪です
方法2. メニューのファイル-インポートからHTML形式を選択 → かなり安定。
方法3. DockのアイコンにHTMLファイルをD&D → 意外と安定。

万全な方法が無いのが悔しいですわ。

僕の場合、SQLServerのデータセットはQt5から加工して出力してます。
でも、Javaが使えるなら、公式JDBC使って出力するのが一番無難かと思います。
いずれにしても、安定しない場合がある以上、お試しの方は自己責任でお願い致します。

以下、読み込みに成功したHTML形式のファイル構造について説明します。

....

まず、HTML形式のファイルは、ものすごく初歩的な最小限の構成で作成します。
データベースから取得した結果セットに見出しを付けて加工してます。

SELECT TOP 5 * FROM [NorthwindJ].[dbo].[社員]の結果を元に;

result.html:

<html>
<head>
<title>クエリーの結果</title>
</head>
<body>
<table>
<tr><th>社員コード</th><th>カタカナ</th><th>氏名</th><th>数値</th></tr>
<tr><td>105</td><td>モリウエ イクマ</td><td>森上 偉久馬</td>td>3,333.33</td></tr>
<tr><td>107</td><td>カツラギ コウシ</td><td>葛城 孝史</td><td>6,666.66</td></tr>
<tr><td>110</td><td>カトウ ヤスエ</td><td>加藤 泰江</td><td>10,000.00</td></tr>
<tr><td>204</td><td>カワムラ タダシ</td><td>川村 匡</td><td>13,333.33</td></tr>
<tr><td>207</td><td>マツザワ セイイチ</td><td>松沢 誠一</td><td>16,666.66</td></tr>
</table>
</body>
</html>

のように、至ってシンプルな構成です。

ちなみに文字コードUTF-8で作成してます。
Safariは先頭にBOMを書かないと文字化けするのでUTF-16でも試したら、こちらでもOKでした。

このままだと味気ないので、色を付けたり表の編集もしてみました。

<th bgcolor="#EE0000"><font color="#FFFFFF">社員コード</font></th>
とか
<td bgcolor="#99CC00" align="right" nowrap>105</td>
とか

表示するテーブルのイメージが事前に固まってれば、出力時に埋め込むのもアリです。

ただし、CSSで<div><lu><li>等を操作してる表は期待通りにインポートできませんでした。
今時のHTMLで良く利用されているだけに、この辺りは空気を読んで欲しかったです。

まぁ、カンマ編集・小数点編集、右寄せ等を施した状態でインポートできたのはラッキーです。

それにしても、なんだかんだ調べてますが、不毛な感じですね。
Windows版ならQuery発行して一発で取れるのにな。

なんで、MSさんはMacから簡単にSQLServerへ接続させてくれないのかな。
Excelからだけでいいので、大目に見てくださいな。