XMLをOfficeで扱う: XMLファイルをExcelで読む(1)

2004年04月25日(日)更新


■Microsoft Office 2003

たけち: 今まではXSLTやXML Schemaのような「規格」を中心に話をしてきたよね。

さらら: えぇ。

たけち: ここからはそれらの規格に基づいて作られた(実装された)、実際のソフトウェアの使い方に視点を移して勉強していこうね。

さらら: ということは、XMLをもっと身近に感じることができそうね。

たけち: そうだね。最初は、一番よく使われているビジネスソフト「Microsoft Office」で、どのようにXMLを扱うかを勉強していくことにするよ。

さらら: Microsoft Office.....?

たけち: 例えばExcel(えくせる)とかWord(わーど)という名前を聞いたことはあるよね。

さらら: あっ、それは聞いたことがあるわ。Excelって表計算をするソフトで、Wordはワープロなんでしょ。

たけち: そう、こういうMicrosoft社のビジネスソフト群のことを「Microsoft Office」と言うんだ。特に「Microsoft Office 2003」というバージョンになってからは、OfficeはかなりのXML対応がなされ、またInfoPath 2003というXMLの入出力インターフェイスソフトも加わって、XMLを使うのに強力なツール群になったんだね。

さらら: へぇ〜。


■Microsoft Excel 2003とXML

たけち: まず最初は、表計算をするソフトとして圧倒的なシェアを誇るExcelが、Excel 2003になって、どのようなXMLへの対応機能を持っているのか勉強していこうね。

さらら: は〜い。

たけち: Excel 2003はXMLを使ういろいろな便利な機能を持っているんだ。今回はまず、XMLをExcelのファイルに変換したり、Excelを使ってXMLをCSVへ変換する方法を勉強しようね。まずは、つぎのXMLファイルを変換してみよう。

XMLファイルサンプル【kajin.xml】

<?xml version="1.0" encoding="Shift_JIS"?>
<meibo>

<person id="1">
    <name>大伴家持</name>
    <age>36</age>
    <address>yakamochi@example.com</address>
</person>

<person id="2">
    <name>額田王</name>
    <age>28</age>
    <address>nukata@example.com</address>
</person>

<person id="3">
    <name>柿本人麻呂</name>
    <age>45</age>
    <address>hitomaro@example.com</address>
</person>

</meibo>


■Excel 2003でXMLファイルを開く

たけち: このXMLファイル【kajin.xml】をまずExcelで読み込んで使うことにしよう。Excelを立ち上げてから、「ファイル」メニューから「開く」を選択するね。

さらら: えぇ。

「ファイル」メニューから「開く」を選択

たけち: するとファイルを開くためのダイアログが表示されるから、そこでさっきの【kajin.xml】ファイルを選択して開けてみようね。

さらら: はい。え〜っと。【kajin.xml】ファイルを選択して・・・あらこんな表示が・・・

ファイルを開く方法を選択

さらら: いったいどれを選べばいいの?

たけち: この場合、ひとまず「XMLリストとして開く」のチェックをそのままにして「OK」ボタンを押せばいいんだよ。

さらら: あっ、そうなのね。じぁあ、「OK」っと・・・きゃ〜、またダイアログが出てきちゃった!!

指定したXMLソースはスキーマを参照していません

さらら: これってなぁに?

たけち: さっき読み込もうとした【kajin.xml】には、xsi:schemaLocation属性やxsi:noNamespaceSchemaLocation属性などがなくて、このXMLデータのXML Schemaを指定してなかったよね。だから、Excel側で勝手に【kajin.xml】のXML Schemaを想定して作成してしまいますよ、ということなんだ。

さらら: え、Excelが勝手にXML Schemaを作ってくれるの? それって便利そう(^_^)

たけち: まあ便利かどうかは状況によるけどね(^_^;)

さらら: ということは、XML Schemaのファイルがあって、それをxsi:schemaLocation属性やxsi:noNamespaceSchemaLocation属性で指定しているXMLデータの場合は、こういうダイアログは出なくて、そのXML Schemaのファイルまで取り込まれるということなのね?

たけち: そのとおりだよ。でも、これについては次回以降で実際に確かめてみようね。

さらら: は〜い。じゃあこれで「OK」のボタンを押すわね。。。あ、ちゃんときちんとテーブルになって表示されたわ。

Excelの表示

たけち: そうこれでできあがり。

さらら: ちょっとびっくりしたけど、意外に簡単なのね。


■Excel形式で保存する

たけち: このデータをExcelのデータとして保存したい場合は、「ファイル」メニューから「名前を付けて保存」を選んで、一番下が
ファイルの種類「マイクロソフト Office Excel ブック (*.xls)」
 となっている状態で、ファイル名を入れて「保存」のボタンを押せばいいんだよ。

さらら: あら、「*.xls」って、XSLTファイルじゃないの?

たけち: よく見て(^_^;) *.xslではなくて、*.xlsだよ。紛らわしいんだけどね。

さらら: あ、本当だわ(^_^;)


■CSV形式で保存する

たけち: 表の構造を持ったデータを、テキストファイルとして表現する方法だったね。じゃあ、まず「ファイルの種類」のところの▼ボタンを押して、下の方を見ていって
ファイルの種類「CSV (カンマ区切り) (*.csv)」
 を選択してみようね。名前は【kajin.csv】にしておこうか。

CSV形式で保存を指定

さらら: は〜い、これでいいのね。そして保存ボタンと… きゃ〜、またごちゃごちゃ言っているダイアログが出てきたわ。

たけち: 要するに、この情報しか保存しませんけどいいですよね、ということを聞いているんだね。これはCSVに変換するためには仕方がないから、「OK」のボタンを押そうね。

ブック形式は・・・・

さらら: はい。。。あら、またしつこくダイアログが出てきちゃったわ。

たけち: これも確認だから、しつこく「はい」を押そうね(^_^;)

確認のダイアログ

さらら: ふ〜。やっとダイアログが消えたわ。

たけち: 実際にCSVファイルができているか、見てみようね。

さらら: あ、kajin.csvというファイルができているわ。

たけち: 確認のために、このCSVファイルをテキストエディタから開いてみようね。

さらら: は〜い。あ、ちゃんと表示できたわ。こんなふうになるのね。

CSVファイル【kajin.csv】

id,name,age,address
1,大伴家持,36,yakamochi@example.com
2,額田王,28,nukata@example.com
3,柿本人麻呂,45,hitomaro@example.com

たけち:さて、これで基本的に終わりだけれど、最初の方でXML Schemaの話が出てきたよね。

さらら: えっ、えぇ・・・(^ ^; (もっ、もしかして・・・)

たけち: 次回は、まずXML Schemaを作って試してみようね。

さらら: あっ、はい。 (^ ^* (やっぱし・・・)

→次回は、XMLファイルをExcelで読む(2)です。 (^ ^;


このコーナーは、TAKABEさま(XSLT登竜門)の全面的なご協力をいただいて作成しています。