RGF形式

RGFファイルは、スタイル罫線数式、その他のスプレッドシート情報を含むReoGridワークシートデータを保存するファイル形式です。RGFファイルはReoGridおよびReoGridEditorで保存できます。

RGFファイル形式はXMLベースで、ReoGridコンポーネント内のスプレッドシートを記述します。スプレッドシートをRGFファイルとして保存するには、ワークシートインスタンスのSaveRGFメソッドを使用します。

worksheet.SaveRGF(path or stream);

RGFファイルからスプレッドシートを読み込むには、ワークシートインスタンスのLoadRGFメソッドを使用します。

worksheet.LoadRGF(path or stream);

RGFファイルのスナップショット

以下は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>

RGFファイルのXML構造

ルート要素

<grid>
  ...
</grid>

head要素

head要素は、セル数、表示設定、印刷設定などの基本情報を格納します。

meta要素

meta要素は、カルチャ情報やReoGridバージョンなど、ワークシートに関するメタデータを格納します。例:

<meta>
  <culture>en-US</culture>
  <editor>ReoGrid Core</editor>
  <core-ver>0.8.9.2</core-ver>
</meta>

rowsおよびcols要素

rowsおよびcols要素は、ワークシート内の最大行数と最大列数を格納します。例:

<rows>100</rows>
<cols>50</cols>

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要素は、グリッド線やページ区切り線の表示など、ワークシートの設定を格納します。例:

<settings meta="2087944062">
  <show-page-break>true</show-page-break>
</settings>

style要素

style要素は、セル、行、列のスタイル情報を格納します。例:

<style color="#000000" font="Arial" font-size="9.75" bold="true" align="left" valign="middle" />

row要素

row要素は、行の高さやタイトルなど、行ヘッダー情報を格納します。例:

<row row="0" height="11" auto-height="false" />

column要素

column要素は、列の幅やタイトルなど、列ヘッダー情報を格納します。例:

<col col="0" width="10" auto-width="false" />

h-borderおよびv-border要素

h-borderおよびv-border要素は、スプレッドシートの罫線情報を格納します。例:

<v-border row="24" col="4" color="#000000" style="Dotted" pos="all" rows="7" />

cell要素

cell要素は、セルデータ、セルスタイル、データ形式などのセル情報を格納します。例:

<cell row="1" col="1" colspan="14" format="text">
  <style bgcolor="#00007d" color="#ffffff" font-size="20.25" align="center" />
  Project Cost Summary
</cell>

画像の保存

CellTypes.ImageCellのインスタンスを追加してセル内に画像を表示する場合、画像もRGFファイルに保存され、そこから読み込まれます。画像はbase64エンコードされた文字列として格納されます。

<cell row="0" col="0" body-type="ImageCell">image/png,iVBORw0KGgoAAAANSUhEUgA...M1P+eGgAAAABJRU5ErkJggg==</cell>

保存と読み込み

単一ワークシート

ワークシートインスタンスからメソッドを呼び出して、単一のワークシートを保存または読み込みます。

// save
worksheet.SaveRGF(file or stream);
// load
worksheet.LoadRGF(file or stream);

複数ワークシートまたはワークブック全体

現在のバージョンのReoGridは、ワークブック全体を単一のRGFファイルとして保存および読み込みすることをサポートしていません。アプリケーションは各ワークシートを個別に保存および読み込みする必要があります。

ワークブックからワークシートのセットを保存および読み込みするためのプラクティスパターンは以下の通りです。

複数ワークシートの保存

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);
  }
}

複数ワークシートの読み込み

foreach(var sheetName in savingList)
{
  // create worksheet instance with the given name
  var worksheet = reoGridControl.CreateWorksheet(sheetName);

  // load worksheet from stream
  worksheet.LoadRGF(string.Format("C:\\MyPath\\{0}.rgf", sheetName));
}

ターゲット:汎用ストリーム

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);
}

Excel形式との違い

ReoGrid形式とExcel形式でワークシートを保存する際にはいくつかの違いがあります。詳細については、Excel形式とRGF形式の違いを参照してください。


ページの内容は役に立ちましたか?