UltKit

ExcelをXMLに変換

Excelで事前にXMLマップを作成しなくても、スプレッドシートからXMLファイルを書き出せます。各行がレコード要素になり、各列の見出しがそのセルの値を格納するタグになります。

データ変換

またはCSV, TSV, TXT … ファイルをここにドロップ ·

1ファイルあたり最大95 MB· 最大20ファイルまで· 30分後に削除

出力

ファイルは当社のサーバーで処理され、30分後に削除されます。

このツールの使い方

  1. 1

    スプレッドシートを追加する

    XLSX、XLS、XLSM、ODSのファイルをアップロードします。1回に最大20ファイル、1ファイルあたり95 MBまで対応しています。1行目に、タグ名にしたい列名が入っていることを確認してください。

  2. 2

    ルート要素の名前を決める

    詳細設定のXMLルートタグに、送信先のシステムが求める最も外側の要素(products、employeesなど)を入力します。整形して出力をオンのままにすると、インデント付きの読みやすいファイルになります。

  3. 3

    変換して検証する

    Convert to XMLを押してダウンロードします。送信先がXSDスキーマを公開している場合は、送る前にバリデーターで検証してください。

Excel XML変換は、最初のシートの表を入れ子の要素として書き出します。最も外側にルートが1つ、1行につき1レコード、1列につき1つの子タグで、タグ名は見出しから付きます。

そもそもExcelをXMLに変換する理由

XMLは1998年2月10日にW3C勧告となり、JSONがWebの主流になる前に、多くの業務ソフトがXMLを前提に作られました。仕入先ポータル、給与・人事システム、カタログのインポーター、多くの企業間連携では、今もXMLのアップロードしか受け付けません。一方でデータを持っているのは購買担当者や総務担当者で、Excelで管理しています。この両者をつなぐ作業は、たいてい締め切りの前日に回ってきます。

Excelでも理論上は可能です。非表示の開発タブを有効にし、XSDスキーマを作成または読み込み、各要素を列にドラッグしてXMLマップを作り、エクスポートします。スキーマが固定の月次レポートなら妥当ですが、1回きりのファイルには手間がかかりすぎます。このコンバーターはマッピングが不要で、見出しがタグ名、行がレコードになります。送信先がJSONを希望する場合は、Excel JSON変換で同じ行をオブジェクトとして書き出せます。

ExcelをXMLに変換した例

見出しがsku、name、stockのシートで、ルートタグをproductsにした例
<?xml version="1.0" encoding="UTF-8"?>
<products>
  <row>
    <sku>00418</sku>
    <name>ケーブルトレー &amp; クリップ</name>
    <stock>42</stock>
  </row>
  <row>
    <sku>00419</sku>
    <name>フットレスト</name>
    <stock>7</stock>
  </row>
</products>

XMLが検証を通るようにシートを準備する

推奨非推奨
見出し行は1行にし、unit_priceやemailのような短い名前にする見出しを数字で始めたり、スペースを入れたりする
1シートにはレコードの種類を1つだけにする(商品だけ、従業員だけなど)見出し行のセルを結合したり、見出しを空欄のままにしたりする
SKUや郵便番号などのコード列は、先頭の0が残るよう文字列形式にする&や<のエスケープを自分で入力する(上の&amp;のように自動で書き出されます)
送信先にルート要素名を確認し、XMLルートタグに入力する末尾に合計や小計の行を残す(偽のレコードになってしまいます)

ExcelからXMLを書き出す方法の比較

UltKitExcelのXMLマップエクスポートExcel XMLスプレッドシート2003
事前にXSDスキーマが必要noyesno
タグ名は見出しから付くyesマップに従うno
1行につき1要素で、他のシステムでも読めるyesyesCellとRowの要素
.xls、.ods、.numbersファイルにも対応yesExcelのみExcelのみ
20ファイルを1回でまとめて変換yesnono

XLSXとXMLの形式の詳細

XLSX

Microsoft Excel ブック

XLSX は、Office 2007 以降の Microsoft Excel の標準ブック形式で、Office Open XML 規格に基づいています。複数のシート、数式、書式、グラフ、ピボットテーブル、入力規則を、XML の ZIP パッケージとして保存します。1 シートあたり 100 万行を超えるデータを扱え、業務用スプレッドシートの標準的なやり取り形式です。Google スプレッドシート、LibreOffice、Numbers でも開けますが、マクロや高度な機能は引き継がれない場合があります。

圧縮方式
–
透過
–
アニメーション
–
登場時期
2007 · Microsoft
XLSX 変換

XML

Extensible Markup Language

XML は、1998 年に W3C が公開した、構造化データ向けのマークアップ言語です。属性を持つタグを入れ子にして記述し、スキーマ、名前空間、検証に対応しているため、複雑な文書でも堅牢に扱えます。RSS フィード、SVG、Office 文書、サイトマップ、企業や行政の多くのデータ交換の基盤になっています。JSON に比べると冗長ですが、どのプログラミング言語でも、また多くの表計算ツールでも読み込めます。

圧縮方式
–
透過
–
アニメーション
–
登場時期
1998 · W3C
XML 変換

シートで管理しているデータを、タグ付きレコードしか受け付けないシステムに渡す必要があるときに、ExcelをXMLに変換します。取引先のインポート用エンドポイント、古いERPやCMS、スキーマバリデーターが検証するテスト用データなどが該当します。

ExcelからXMLへの変換:ファイルを送る前のQ&A

Excelで「XMLマップをエクスポートできない」と表示されるのはなぜですか?

Excel標準のXMLエクスポートは、スキーマに紐づいたXMLマップがないと使えず、リストの中にリストがあるような構造のマップは受け付けません。このコンバーターはマップ不要で、シートを単純な表として読み取り、1行につき1レコードを書き出します。

XLSXファイルはもともとXMLではないのですか?

中身はXMLです。.xlsxはISO/IEC 29500で定められたXMLパーツをZIPにまとめたものです。ただしワークシートのパーツに入っているのはセル参照と共有文字列テーブルへのポインターで、読めるレコードではありません。顧客や商品ごとに1要素を求めるシステムでは使えません。

XMLタグとして有効な見出し名はどのようなものですか?

XML 1.0では、名前に英字、数字、ハイフン、アンダースコア、ピリオドが使えます。ただし先頭を数字にしたりスペースを含めたりはできず、xmlで始まる名前は予約されています。「2025 Sales」や「Unit Price」のような見出しは、変換前にsales_2025やunit_priceのように変更してください。

ブック内のすべてのシートを書き出せますか?

変換するシートを「すべてのシート」にすると、最初のシートだけでなく各タブも変換されます。各シートは独立した表として扱われるため、1シートにつきレコードの種類は1つにしてください。

数式やセルの書式はどうなりますか?

XMLには値が入るため、数式セルは計算結果が書き出されます。太字、塗りつぶし色、列幅、コメントは見た目の情報なので、出力には含まれません。

XMLをスプレッドシートに戻すにはどうすればよいですか?

XML Excel変換を使ってください。レコードは行に、タグは列見出しに戻ります。Excelでデータを編集し、送信先から更新を求められたときにもう一度変換できます。