SpreadsheetML ドキュメントの構造
SpreadsheetML
ドキュメントのドキュメント構造は、ブック内のワークシートを参照する<sheets/>
要素と<sheet/>
要素を含む <workbook/>
要素で構成されます。 ワークシートごとに、それぞれの XML ファイルが作成されます。 これらの要素は、有効なスプレッドシート ドキュメントに必要な最低限の要素です。 さらに、スプレッドシート ドキュメントには、 <table/>
、 <chartsheet/>
、 <pivotTableDefinition/>
、またはその他のスプレッドシート関連の要素が含まれている場合があります。
注:
複数のプラットフォーム間で Office エクスペリエンスを拡張するソリューションを開発することに関心がありますか? 新しい Office アドイン モデルを参照してください。 Office アドインは、VSTO アドインやソリューションに比べてフットプリントが小さく、HTML5、JavaScript、CSS3、XML などのほぼすべてのWeb プログラミング テクノロジーを使用して構築できます。
重要なスプレッドシート パーツ
Open XML SDK for Office を使用すると、 SpreadsheetML
要素に対応する厳密に型指定されたクラスを使用するドキュメント構造とコンテンツを作成できます。 これらのクラスは、 DocumentFormat.OpenXML.Spreadsheet
名前空間にあります。 次の表に、スプレッドシートの重要な要素の一部に対応するクラスのクラス名を示します。
パッケージのパーツ | 最上位の SpreadsheetML 要素 | Open XML SDK クラス | 説明 |
---|---|---|---|
ブック | <workbook/> |
Workbook | メイン ドキュメント パーツのルート要素。 |
Worksheet | <worksheet/> |
Worksheet | テキスト、数値、日付、または式を含むセルのグリッドを表すシートの種類。 詳細については、「 シートの操作」を参照してください。 |
グラフ シート | <chartsheet/> |
Chartsheet | 独自のシートとして格納されるグラフを表すシート。 詳細については、「 シートの操作」を参照してください。 |
Table | <table/> |
Table | データの範囲が単一のデータセットに属することを指定する論理的な構造。 詳細については、「 SpreadsheetML テーブルの操作」を参照してください。 |
ピボットテーブル | <pivotTableDefinition/> |
PivotTableDefinition | データの集約されたビューをわかりやすいレイアウトで表示する論理的な構造。 詳細については、「Working with PivotTables」を参照してください。 |
ピボット キャッシュ | <pivotCacheDefinition/> |
PivotCacheDefinition | PivotTable のデータのソースを定義する構造。 詳細については、「Working with PivotTables」を参照してください。 |
ピボット キャッシュ レコード | <pivotCacheRecords/> |
PivotCacheRecords | PivotTable のソース データのキャッシュ。 詳細については、「Working with PivotTables」を参照してください。 |
計算チェーン | <calcChain/> |
CalculationChain | ブック内のセルが最後に計算された順序を指定する構造。 詳細については、「 計算チェーンの操作」を参照してください。 |
共有文字列テーブル | <sst/> |
SharedStringTable | ブックの全ワークシートに出現する一意の各文字列が 1 つずつ格納される構造。 詳細については、「 共有文字列テーブルの操作」を参照してください。 |
条件付き書式設定 | <conditionalFormatting/> |
ConditionalFormatting | 1 つのセルまたは一連のセルに適用される書式を定義する構造。 詳細については、「 条件付き書式の操作」を参照してください。 |
数式 | <f/> |
CellFormula | 式を格納するセルの式テキストを定義する構造。 詳細については、「 数式の操作」を参照してください。 |
最低限のブックのシナリオ
Standard ECMA-376 では、最低限のブックのシナリオについて次のように説明しています。
可能な限り最も小さい (空白の) ブックには、次のものが含まれる必要があります。
1 つのシート
シート ID
シート定義の位置を示すリレーション ID
© Ecma International: December 2006.
Open XML SDK コード例
このコード例では、Open XML SDK のクラスを使用して、空白の最小ブックを作成します。
static void CreateSpreadsheetWorkbook(string filepath)
{
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook))
{
// Add a WorkbookPart to the document.
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add Sheets to the Workbook.
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
sheets.Append(sheet);
}
}
標準的なブックのシナリオ
標準的なブックは、空白の最低限のブックではありません。 標準的なブックには、数値、テキスト、グラフ、テーブル、およびピボットテーブルが含まれる場合があります。 これらの各追加パーツは、スプレッドシート ドキュメントの .zip パッケージに格納されます。
次の図では、標準的なスプレッドシートに含まれるほとんどの要素が示されています。
図 2. 標準的なスプレッドシートの要素