RGF フォーマットはワークシートテンプレートファイルのフォーマットで、ReoGrid/ReoGridEditor で作成、編集できます。RGF フォーマットはワークシートのデータ、スタイル、罫線、計算式、アウトライン、命名範囲の定義、セル型などを含むことができます。
RGF は XML フォーマットに準拠したファイルフォーマットです。
スナップショット
RGF ファイルの内容(抜粋)は以下の通りです。
<?xml version="1.0"?> <grid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <head> <meta> <culture>en-US</culture> <editor>ReoGrid Core </editor> <core-ver>0.8.9.2</core-ver> </meta> <print-settings> <paper-size>A4</paper-size> ... </print-settings> </head> <style color="#000000" font="Arial" font-size="9.75" bold="true" align="left" valign="middle" /> <rows> <row row="0" height="11" auto-height="false" /> ... </rows> <cols> <col col="0" width="10" auto-width="false" /> ... </cols> <v-borders> <v-border row="23" col="3" color="#000000" style="Solid" pos="left" rows="8" /> ... </v-borders> <h-borders> <h-border row="3" col="1" color="#000000" style="BoldSolid" pos="top" cols="14" /> ... </h-borders> <cells> <cell row="1" col="1" colspan="14" format="text">Project Cost Summary <style bgcolor="#00007d" color="#ffffff" font-size="20.25" align="center" /> </cell> ... </cells> </grid>
XML 構造
grid 要素
grid 要素はフォーマットのルート要素です。
<grid> ... </grid>
head 要素
head 要素はワークシートの基本情報、設定、例えば行列の数、シート全般の設定、印刷設定などを含んでいます。
meta 要素
meta 要素はワークシートの基本情報を含んでいます。
<meta> <culture>en-US</culture> <editor>ReoGrid Core</editor> <core-ver>0.8.9.2</core-ver> </meta>
rows and cols 要素
rows と cols 要素はワークシートの行数と列数です。
<rows>100</rows> <cols>50</cols>
print-settings 要素
print-settings 要素は印刷設定を保存します。
<print-settings> <page-break-rows>0,42</page-break-rows> <page-break-cols>1,15</page-break-cols> <scale-factor>0.8637016</scale-factor> <paper-size>A4</paper-size> <landscape>true</landscape> <page-order>down-over</page-order> </print-settings>
settings 要素
settings 要素はワークシートの設定を保存します。meta 属性は各設定値のOR演算結果です。
<settings meta="2087944062"> <show-page-break>true</show-page-break> </settings>
style 要素
style 要素はセルのスタイル設定です。grid 要素の配下にある場合シート全体のデフォルトスタイルを表します。
<style color="#000000" font="Arial" font-size="9.75" bold="true" align="left" valign="middle" />
row 要素
row 要素は行の設定です。row 要素は該当行の設定がデフォルトの行設定と異なる場合のみ利用されます。
<row row="0" height="11" auto-height="false" />
column 要素
column 要素は列の設定です。column 要素は該当列の設定がデフォルトの列設定と異なる場合のみ利用されます。
<col col="0" width="10" auto-width="false" />
h-border and v-border 要素
h-border と v-border 要素はそれぞれ水平罫線と垂直罫線です。
<v-border row="24" col="4" color="#000000" style="Dotted" pos="all" rows="7" />
cell 要素
Cell 要素はセルの内容を保存します。cell 要素は style 要素を含むことができます。
<cell row="1" col="1" colspan="14" format="text"> <style bgcolor="#00007d" color="#ffffff" font-size="20.25" align="center" /> Project Cost Summary </cell>
読み込みと保存
RGF は単一のワークシートのみに対応します。複数のワークシートの読み込みと保存には、複数の RGF ファイルの利用が必要です。
単一ワークシートの読み込みと保存
ワークシートの SaveRGF
メソッドを利用するとそのワークシートを RGF ファイルに出力できます。
worksheet.SaveRGF(出力先パスまたはストリーム);
RGF ファイルからワークシートの内容を読み込むには、LoadRGF
メソッドを利用します。
worksheet.LoadRGF(入力先パスまたはストリーム);
複数のワークシートの読み込みと保存
複数のRGFファイルを利用して複数のワークシートを読み込むまたは保存する例は以下の通りです。
複数のワークシートの読み込み
foreach(var sheetName in savingList) { // create worksheet instance by given name var worksheet = reoGridControl.CreateWorksheet(sheetName); // load worksheet from stream worksheet.LoadRGF(string.Format("C:\\MyPath\\{0}.rgf", sheetName)); }
複数のワークシートの保存
var savingList = new List<string>(); foreach (var worksheet in reoGridControl.Worksheets) { if (ShouldSaveThisWorksheet(worksheet) == true) { // save worksheet.SaveRGF(string.Format("C:\\MyPath\\{0}.rgf", worksheet.Name)); // add worksheet name into saving list savingList.Add(worksheet.Name); } }
様々な入出力先
出力先がストリームのソースコード例
using(var ms = new MemoryStream()) { // save worksheet.SaveRGF(ms); // load worksheet.LoadRGF(ms); }
出力先がファイルのソースコード例
// save worksheet.SaveRGF("C:\\MyPath\\MyFile.rgf"); // load worksheet.LoadRGF("C:\\MyPath\\MyFile.rgf");
出力先がバイト配列のソースコード例
byte[] buf = null; // save using (var ms = new MemoryStream()) { worksheet.SaveRGF(ms); buf = ms.ToArray(); } // load using (var ms = new MemoryStream(buf)) { worksheet.LoadRGF(ms); }
出力先が文字列のソースコード例
string content = null; // save using (var ms = new System.IO.MemoryStream()) { sheet.SaveRGF(ms); content = Encoding.Default.GetString(ms.ToArray()); } // load using (var ms = new System.IO.MemoryStream(Encoding.Default.GetBytes(content))) { sheet.LoadRGF(ms); }
ReoGridEditorでの編集
ReoGridEditor は ReoGrid のスプレッドシート用のテンプレートファイルを作成するためのエディタです。ReoGridEditor は Excelフォーマット、RGFフォーマットに対応しています。ReoGridEditor を利用すると作成したワークシートのテンプレートを RGF ファイルとして保存することができます。詳しくは、「ReoGridエディタ」をご覧ください。
RGF 利用の注意事項
RGF フォーマットは単一のワークシートに対応します。マルチワークシートに関する機能、例えば他のシートへ参照する命名範囲の利用ができなくなります。テンプレートを複数のワークシートで構成する場合、Excel フォーマットの利用をご検討ください。Excelフォーマットについて詳しくは、「Excel フォーマット」をご覧ください。
Excel ファイルとの違い
RGF フォーマットは ReoGrid 特有の機能に最適化したフォーマットです。Excel フォーマットに比べ、それぞれ違った特徴と最適な利用ケースがあります。詳しくは、「Excel と RGF フォーマットの比較」をご覧ください。