Excel for WPF では、Microsoft Excel 2007 OpenXml ファイルを読み書きできるようになりました。OpenXml は、Microsoft によって Office 2007 に導入されたオープンスタンダードベースの形式です。BIFF8 などの独自のバイナリ形式とは異なり、OpenXml は XML に基づき、ドキュメントも公開されているため、OpenXml ファイルはアプリケーションで簡単に操作できます。OpenXml ファイルには、Zip 圧縮されたいくつかの XML ファイルが含まれます。これらのファイルは圧縮されているため、通常、OpenXml ファイルは、.doc や .xls などの従来のドキュメントファイルより小さくなります。
Excel for WPF では、OpenXml ファイルのデータをロードおよび保存したり、情報を書式設定することはできますが、数式はロードまたは保存されません。BIFF 形式では数式が不透過としてコピーされますが、これは、現時点では OpenXML 形式でサポートされていません。数式を含むファイルをロードして保存すると、それらの数式は削除されます。この点は、数式を保持する従来の .xls または BIFF8 形式とは異なります。
OpenXml 形式をサポートするため、C1XLBook の Load メソッドと Save メソッドには、FileFormat パラメータを取るオーバーロードメソッドがあります。このパラメータは、ファイルのロードまたは保存時に、使用するファイル形式を指定するために使用されます。
ファイル名が指定されなかった場合、Excel for WPF は、ファイル名拡張子からファイル形式を推定します。デフォルトでは、"XLSX" および "ZIP" 拡張子を持つファイルは、OpenXml ファイルとしてロードおよび保存されます。その他のファイルは、BIFF8 または .xls 形式としてロードおよび保存されます。
次に例を示します。
C# |
コードのコピー
|
---|---|
// ファイル拡張子に基づいてロードおよび保存します book.Load("somefile.xls"); // biff 8 ファイルをロードします book.Save("somefile.xlsx"); // ファイルを OpenXml として保存します book.Save("somefile.zip"); // ファイルを OpenXml として保存します // FileFormat を指定してロードおよび保存します book.Load("somefile.xls", FileFormat.Biff8); book.Save("somefile.xlsx", FileFormat.OpenXml); |
ストリームからファイルをロードしたり、ストリームに保存するときに形式を指定することもできます。FileFormat が指定されなかった場合、Excel for WPF はデフォルトで BIFF8 形式を使用します。
ここには、小さな動作変更が含まれていることに注意してください。次のステートメントを考えます。
XAML |
コードのコピー
|
---|---|
book.Save("somefile.xlsx");
|
これにより、これまでの Excel for WPF では、(間違った拡張子で)BIFF8 ファイルが保存されます。これからは、(正しい拡張子で)OpenXml ファイルが保存されます。アプリケーションにこのようなコードがある場合は、アップグレード時に次のように変更する必要があります。
XAML |
コードのコピー
|
---|---|
// 意図的に間違った拡張子でファイルを保存します book.Save("somefile.xlsx", FileFormat.Biff8); |
既存のブックをロードします。
ブックを OpenXml 形式ファイルにエクスポートします。