ExcelからXMLへの変換(エクスポート)方法 - 属性中心の対応付け

ExcelからXMLへの変換(エクスポート)属性中心の対応付けの方法です。

ExcelからXMLへの変換(エクスポート)方法 - 属性中心の対応付け

以前「Excel(CSV)からXMLへの変換(エクスポート)方法」を紹介しました。

今回は変換後の XML が各々のタグではなく 属性として変換する方法 を紹介します。


ExcelからXMLへの変換までの手順

前回と同様の手順です。

  1. 集計表を作る
  2. XSD ファイルを作る
  3. 集計表から xsd ファイルを選択して項目を対応付ける
  4. エクスポート実行

集計表を作る

前回と同じ集計表を使います。

ExcelからXMLへの変換する集計表

XSD ファイルを作る

ここが前回と違うポイントです。

型のセット(string、dateTime、decimal など)、XML 言語 (complexType、minOccurs、element など)の構成は同じですが、記述の方法が異なります。

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="root">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="sales" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:attribute name="no" type="xsd:integer"/>
            <xsd:attribute name="sales_no" type="xsd:string"/>
            <xsd:attribute name="sales_date" type="xsd:date"/>
            <xsd:attribute name="item" type="xsd:string"/>
            <xsd:attribute name="qty" type="xsd:integer"/>
            <xsd:attribute name="unit_price" type="xsd:integer"/>
            <xsd:attribute name="totoal_amt" type="xsd:integer"/>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

前回は element タグを sales と entry タグに分けて要素を設定していましたが、今回は element タグ sales の下に要素を設定しています。attribute タグを利用することにより、sales タグの属性と位置付けることができるのです。

集計表から xsd ファイルを選択して項目を対応付ける。

リボンの「開発」タブから 「ソース」-「XML の対応付け」-「追加」 にて xsd ファイルを対応付けします。全ての要素をドラッグするとこんな感じです。

ブック内のXMLの対応付け

エクスポート実行

リボンの「開発」タブから「エクスポート」してファイルを保存します。

実際に出来上がった XML はこんな感じです。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
  <sales no="1" sales_no="SNO-0001" sales_date="2014-09-01" item="パソコン" qty="1" unit_price="100000" totoal_amt="100000"/>
  <sales no="2" sales_no="SNO-0001" sales_date="2014-09-02" item="プリンタ" qty="1" unit_price="30000" totoal_amt="30000"/>
  <sales no="3" sales_no="SNO-0002" sales_date="2014-09-02" item="パソコン" qty="1" unit_price="50000" totoal_amt="50000"/>
  <sales no="4" sales_no="SNO-0003" sales_date="2014-09-03" item="モニタ" qty="1" unit_price="25000" totoal_amt="25000"/>
  <sales no="5" sales_no="SNO-0003" sales_date="2014-09-03" item="マウス" qty="1" unit_price="3000" totoal_amt="3000"/>
</root>

おおおお、sales タグの属性として要素が設定されていますね^^

参考サイト

・Excel 2003 で XML の対応付けを作成する

http://msdn.microsoft.com/ja-jp/library/aa203737(v=office.11).aspx

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。