XMLでWordファイル・Excelファイルの読み書き

未だに Office 2003 を使っていて、優待パッケージを買ってそろそろ 2007 にアップグレードしようかと思っているところなのですが、Word・Excel の別名に保存で選べるファイルの種類に、それぞれ「XML ドキュメント」と「XML スプレッドシート」があり、拡張子 .xml でファイルが保存できることに今ごろ気づきました。

XML 形式なので、JavaScript・ActionScript からも手軽に扱えそう。
参考までに、最小構成の Word の「XML ドキュメント」のようになるみたい。

<?xml version="1.0" encoding="UTF-8"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
><w:body><w:p><w:r><w:t>Hello, Word!</w:t></w:r></w:p></w:body></w:wordDocument>

同じく最小構成の Excel の「XML スプレッドシート」は以下です。分かりやすい。

<?xml version="1.0" encoding="UTF-8"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
 <Worksheet ss:Name="Sheet1">
  <Table>
   <Row>
    <Cell><Data ss:Type="String">Hello, Excel!</Data></Cell>
   </Row>
  </Table>
 </Worksheet>
</Workbook>

実際には、スタイルなどが必要になるので、Word・Excel が出力する XML ファイルは
もっと長くなっています。(XML なのに、書式などがそのまま保存される)
また、Excel はインデントしてるけど、Word はインデントがあるとエラーになるなど、
アプリごとに XML パーサーも違っているようです。要素名の付け方も違うし。w

アプリに読み込ませる設定ファイルを XML ファイルにしたとき、手書きで編集は避けたいけど、
XML スプレッドシートで編集することにすれば、編集も読み込みも手軽で○だと思った。

ちなみに、XML ファイル 2行目の mso-application の行がマジックフレーズになっているのか、
Windows XP で表示されるアイコンが自動的に変わる仕組みになってますね。
フォルダのファイル一覧を表示した段階で、ファイルの内容を見てるのかな?


左端のアイコンが通常の XML ファイル。
真ん中が「XML スプレッドシート」で、以下の行があるとエクセルマークが付く。

<?mso-application progid="Word.Document"?>

右端が「XML ドキュメント」で、以下の行があるとワードマークが付く。

<?mso-application progid="Excel.Sheet"?>

作成した XML ファイルを具体的に読み書きする方法は、開発言語ごとになりますが、
Perl は XML::TreePP がオススメです。ActionScript 3.0 では、E4X でできました。JavaScript でもできそう。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 8

なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
面白い
ナイス
ガッツ(がんばれ!)

この記事へのコメント

この記事へのトラックバック