Excel(CSV)からXMLへの変換(エクスポート)方法 ホームページ制作 | 墨田区

Excel(CSV)からXMLへの変換(エクスポート)方法

LINEで送る
Pocket

Excel で取りまとめた集計表を、XML に変換してシステムに取り込みたい
といった要望がありましたので、変換(エクスポート)手順をサンプル付きで
ご紹介したいと思います。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


変換までの手順

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


1. 集計表を作る

まず、実務で利用されている集計表を準備します。
ここでは、こんな感じの売上表を用意しています。
Excel Export 集計表


2. XSD ファイルを作る。

次に、XSD ファイルを作ります。
XSD とは、XML スキーマ ドキュメントの作成に使用する W3C 標準言語です。
XML スキーマは、定義済みの型のセット(string、dateTime、decimal など)と、
新しい型を定義するための XML 言語 (complexType、minOccurs、element など) の
2 つの部分で構成されます。

ここでは、以下のような XML を記述しました。

XML スキーマ

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

データ型(type=以降)

  • 文字列:string
  • 数値:integer
  • 日付:dateTime

※他にもあります。


このソースを、テキストエディタに貼り付け保存します。
その際、拡張子は 「.xsd」 にしてください。エンコードの種類は 「UTF-8」 です。
ここでは、「sample.xsd」として保存します。


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

集計表の Excel に戻ります。
リボンの「開発」タブから、ソースを選択します。
>リボンに「開発」タブが表示されていない場合は、こちら
Excel Export ソース選択

XML ソース画面が出てきますので、右下の「XML の対応付け」ボタンを押下します。
Excel Export XMLソース表示

XML の対応付け画面では、「追加」ボタンを押下します。
Excel Export XML対応付け追加

XML ソースの選択画面が出ますので、先ほど作った「sample.xsd」ファイルを選択して
「開く」ボタンを押下します。
Excel Export XMLソース選択

複数ルート画面が出たら、最も外側のタグである「sales」を選択して、
「OK」ボタンを押下します。
Excel Export 複数ルート

XML の対応付け画面でも「OK」ボタンを押下して画面を閉じます。
Excel Export XML対応付け選択OK

すると、XML ソース画面に、対応付けされた 「sales_対応付け」 が
ツリー状で出てきます。
コメントにあるように、ツリーから要素をワークシートにドラッグします。
例えば、no であれば、セル「A1」 へドラッグします。
Excel Export XMLソースsales対応付け


全ての要素をドラッグするとこんな感じになります。
Excel Export 対応付け済


4. エクスポート実行

リボンの「開発」タブから「エクスポート」ボタンを押下します。
Excel Export エクスポート

保存先を指定して、「エクスポート」ボタンを押下します。
Excel Export エクスポート保存

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

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

いかがでしたでしょうか?
実際に実務で利用されるのは、こんなに単純な表ではないでしょうけど、
イメージはつかめたのではないでしょうか?
XML と聞くだけで引いてしまう方が結構いらっしゃいますが、
テキストだと思えばなんてことありません。
気楽に付き合っていきましょう。


参考サイト

・XML データをエクスポートする – Excel
http://office.microsoft.com/ja-jp/excel-help/HP010206401.aspx

属性中心の対応付けは こちら を参照ください。
ExcelからXMLへの変換(エクスポート)方法 – 属性中心の対応付け


おつかれさまでした。

LINEで送る
Pocket

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

コメントを残す

コメント(必須)

お名前 (必須)
メールアドレス
(アドレスは公開されません)

Trackback URL