XML)について解説をする特集記事です。XMLの成り立ちやOpenOfficeとの比較、標準化の流れ、仕様の概要について紹介しました。後編は、Excelを例にJavaで最新Officeフォーマットファイルのデータを操作する方法を紹介します。ワークシートが1つで、テキストと数値の行を入力したシンプルなExcelファイルを作成してみます。次に、DOM操作用のJava標準APIである「org.w3c.dom」「javax.xml.parsers」「javax.xml.transform」パッケージなどを使って、作成したExcelファイルの各行を参照したり、データをさらに追加したり、データの一部更新、削除など行ってみます。Java標準APIによるXML操作の基本を知りたい読者は、少し情報が古いですが、以下の連載を参考にしてください。サンプルExcelファイルを見てみよう今回最初に作成するExcelファイルのサンプルは、図1のようになります。今回作成するサンプルのExcelファイルA列:テキストデータ、B列:数値、C列:数値からなる行を入力してみます。ソースコードのフォルダ構成は、次のようになります。ソースコードのフォルダ構成まずは、図2のソースコードをこちらよりダウンロードしておいてください。本稿のサンプルプログラムについては、以下の注意事項がありますので、気を付けてください。2007でdocx/xlsx/pptxサンプルファイルの編集や保存を行うと、元のサンプルにないコードが挿入されますテキストエディタでサンプルのXMLファイルを編集する場合、文字コードをUTF-8に設定してください。2007でdocx/xlsx/pptxファイルが開けない場合があります文字コードをUTF-8に設定してください。OXMLCreator.java』のように、コンパイル時に文字コード(エンコーディング)を指定してくださいサンプルファイルは読み取り専用になっています。必要に応じ、解除してください読み取り専用になっています。必要に応じ、解除してくださいサンプルプログラムは自己責任によりご利用くださいJavaの文字エンコーディングについて詳しく知りたい読者は、以下の記事を参考にしてください。XMLのExcelファイルを作成する「OXMLCreator.java」ファイルを開いてください。OXMLCreator.javaの処理の流れは、次のようになります。*/sheet1.xmlファイルに書き込む内容をStringBufferへ保存(23?27行目)1.で保存したデータからsheet1.xmlファイルを生成(28行目)あらかじめ保存しておいた[Content_Types].xmlやworkbook.xmlなどのファイルとともにsheet1.xmlファイルをZIP圧縮し、sample.xlsx生成(29行目)Java標準APIによるZIP圧縮について詳しく知りたい読者は、以下の記事を参考にしてください。fileList.add("xl/worksheets/sheet1.xml");16〜20行目でZIPファイル(sample.xlsx)に含むファイルのファイル名とパスを追加します。}insertDataの引数に順に設定したA列のテキスト、B列の数値、C列の数値をそれぞれStringBuffer型のsheetContent変数へ行データ1行分のデータとして保存します。41〜45行目でA列、46?48行目でB列、49?51行目でC列を設定します。}StringBuffer型のsheetContent変数へ保存したデータからsheet1.xmlファイルを生成します。63行目でsheet1.xmlの文字コードを「UTF-8」に設定します。sheet1.xmlファイルを生成後、あらかじめ保存しておいた[Content_Types].xmlやworkbook.xmlなどのファイルとともにsheet1.xmlファイルをZIP圧縮すると、図1のようなExcelファイルが作成されます。