HTMLのテーブルをエクセルに変換するテクニック

今日はとっておきの裏技をお教えします。
知ってる人は知ってると思いますが、知らない人も結構多いんじゃないでしょうか。ウェブ関係の仕事をしてる人は覚えておいてソンはないと思います。


内容はいたって簡単。まずは<table>タグを使ってHTMLを作ります。たとえばこんな感じ。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>table test</title>
</head>
<body>

<table border="1">
<tr>
<th>名前</th>
<th>誕生日</th>
</tr>
<tr>
<td>長島茂雄</td>
<td>1936/2/20</td>
</tr>
<tr>
<td>星野仙一</td>
<td>1947/1/22</td>
</tr>
<tr>
<td>野村克也</td>
<td>1935/6/29</td>
</tr>
</table>

</body>
</html>

このHTMLをローカルに保存します。ファイル名は「table_test.html」とします。
まずはブラウザで開いてちゃんと表示できるか確認。

さあ、ここからが本番です。
「table_test.html」を拡張子を変えて「table_test.xls」にします。そして「table_test.xls」を開くと。。。

たったこれだけでエクセルの表ができてしまうんです。
すごく簡単なんですけど、すごく強力なテクニックです。

たとえばtableで作った一覧表など、プログラムをちょちょいといじれば同じものをエクセルでデータをダウンロードする機能なんかもできちゃいます。

よくCSVを出力して、エクセルに取り込んで表示、、、とかやることがありますが、データ量が少ないケースならこの方法が圧倒的に楽だと思います。


それからセルに「00012」「12345678901234567890」などの値を入れると、それぞれエクセルがセルの値を「12」「1.23457E+19」という具合に変換されしまいますが、これを防ぐためには「="00012"」「="12345678901234567890"」というようにしてやります。文字列として評価されるので、そのまま表示されます。


頭の中の引き出しに入れておくと、いざという時に役に立つテクニックだと思います。
機会があったら使ってみてください。