PowerTools SPREAD for Windows Forms 10.0J
シートデータをXML形式で保存

構造化された形式でデータを処理する必要がある場合、シートのデータを、XML形式でファイルまたはストリームに保存できます。保存の対象となるのはシートで、コントロールのすべてのシートではありません。書式情報または表現に関わる設定は保存されず、データ領域のセルが保存されます。ヘッダのセルは保存されません。

データをXML形式で保存するには、SheetViewクラスのSaveXmlメソッドを使用します。

SaveXMLメソッドの引数で、データを出力するXMLファイルと、XMLスキーマを出力XMLファイルを指定できます。後述のサンプルコードの実行結果が示すように、最上位(ルート)要素はシート(SheetName)であり、このシート要素内に行要素(Row1、Row2など)が含まれ、各行内には列要素(Column1、Column2など)が含まれ、各列要素内にデータが含まれます。シート要素にはシート名が使用されます。行には一意の名前は付けられていません。各列には一意の名前が付けられ、データを含まない列は無視されます。

  • 階層全体を保存することはできません。階層は親階層、および子階層を表す複数のシートで構成されますが、XML形式の保存対象となるのは個別のシートです。
  • 書式を含まないデータのみが保存されます。セル型を設定している場合、セル型によりデータが処理されます。詳しくは「データの表示」を参照してください。

サンプルコード

次のサンプルコードは、シートのデータをXMLファイルに保存します。XMLスキーマもファイルに出力します。

C#
コードのコピー
fpSpread1.ActiveSheet.RowCount = 3;
fpSpread1.ActiveSheet.ColumnCount = 4;
fpSpread1.ActiveSheet.SetValue(2, 0, "テスト");
fpSpread1.ActiveSheet.SetValue(2, 1, 1000);
fpSpread1.ActiveSheet.SetValue(2, 2, DateTime.Today);
fpSpread1.ActiveSheet.SetValue(2, 3, true);
fpSpread1.ActiveSheet.SaveXml("FPSpread-SheetToXML2.xml", "FPSpread-SchemaForXML2.xml");
Visual Basic
コードのコピー
FpSpread1.ActiveSheet.RowCount = 3
FpSpread1.ActiveSheet.ColumnCount = 4
FpSpread1.ActiveSheet.SetValue(2, 0, "テスト")
FpSpread1.ActiveSheet.SetValue(2, 1, 1000)
FpSpread1.ActiveSheet.SetValue(2, 2, DateTime.Today)
FpSpread1.ActiveSheet.SetValue(2, 3, True)
FpSpread1.ActiveSheet.SaveXml("FPSpread-SheetToXML2.xml", "FPSpread-SchemaForXML2.xml")

出力結果は次のようになります。

XML
コードのコピー
<Sheet1>
  <Row>
    <Column1>テスト</Column1>
    <Column2>1000</Column2>
    <Column3>2016/10/26 0:00:00</Column3>
    <Column4>True</Column4>
  </Row>
</Sheet1>

XMLスキーマは、次のようになります。

XML
コードのコピー
<?xml version="1.0" encoding="utf-16"?>
<xs:schema id="Sheet1" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="Sheet1" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Row">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Column1" type="xs:string" minOccurs="0" />
              <xs:element name="Column2" type="xs:string" minOccurs="0" />
              <xs:element name="Column3" type="xs:string" minOccurs="0" />
              <xs:element name="Column4" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
関連トピック

Excel形式ファイルのインポート

 

 


© 2004-2017, GrapeCity inc. All rights reserved.