ExcelをXMLに変換
Excelで事前にXMLマップを作成しなくても、スプレッドシートからXMLファイルを書き出せます。各行がレコード要素になり、各列の見出しがそのセルの値を格納するタグになります。
データ変換
またはCSV, TSV, TXT … ファイルをここにドロップ ·
1ファイルあたり最大95 MB· 最大20ファイルまで· 30分後に削除
ファイルは当社のサーバーで処理され、30分後に削除されます。
CSVやテキストファイルで列を区切る文字です。読み込みと書き出しの両方に使われます。自動は入力から判別し、書き出しはカンマにします。
UTF-8はあらゆる言語に対応します。WindowsのExcelでCSVを開いたときにアクセント文字や日本語などが文字化けする場合は、BOM付きUTF-8を選んでください。
Excel、ODS、Numbersの入力用です。最初のシートだけ、またはすべてのシートを変換します(CSVはシートごとに1ファイルをZIPにまとめ、JSONはシートごとに1つのキーになります)。
新しいスプレッドシートのシートタブの名前です。31文字までです。
オブジェクトの配列は、各行で列名をキーにします。配列の配列はよりコンパクトで、ヘッダーを最初の配列として保持します。
すべての行を囲む外側の要素の名前です。各行はその中で<row>になります。
CREATE TABLE文とINSERT文で使われます。英字、数字、アンダースコアのみ使えます。
引用符の付け方や列の型はデータベースごとに少しずつ異なります。インポート先に合わせて選んでください。
日付のセルを1つの形式に書き換えます。ISO(2026-10-18)はデータベースやコードに最も安全です。そのままは元の表記を保ちます。
このツールの使い方
- 1
スプレッドシートを追加する
XLSX、XLS、XLSM、ODSのファイルをアップロードします。1回に最大20ファイル、1ファイルあたり95 MBまで対応しています。1行目に、タグ名にしたい列名が入っていることを確認してください。
- 2
ルート要素の名前を決める
詳細設定のXMLルートタグに、送信先のシステムが求める最も外側の要素(products、employeesなど)を入力します。整形して出力をオンのままにすると、インデント付きの読みやすいファイルになります。
- 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に変換した例
<?xml version="1.0" encoding="UTF-8"?>
<products>
<row>
<sku>00418</sku>
<name>ケーブルトレー & クリップ</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が残るよう文字列形式にする | &や<のエスケープを自分で入力する(上の&のように自動で書き出されます) |
| 送信先にルート要素名を確認し、XMLルートタグに入力する | 末尾に合計や小計の行を残す(偽のレコードになってしまいます) |
ExcelからXMLを書き出す方法の比較
| UltKit | ExcelのXMLマップエクスポート | Excel XMLスプレッドシート2003 | |
|---|---|---|---|
| 事前にXSDスキーマが必要 | no | yes | no |
| タグ名は見出しから付く | yes | マップに従う | no |
| 1行につき1要素で、他のシステムでも読める | yes | yes | CellとRowの要素 |
| .xls、.ods、.numbersファイルにも対応 | yes | Excelのみ | Excelのみ |
| 20ファイルを1回でまとめて変換 | yes | no | no |
XLSXとXMLの形式の詳細
XLSX
Microsoft Excel ブック
XLSX は、Office 2007 以降の Microsoft Excel の標準ブック形式で、Office Open XML 規格に基づいています。複数のシート、数式、書式、グラフ、ピボットテーブル、入力規則を、XML の ZIP パッケージとして保存します。1 シートあたり 100 万行を超えるデータを扱え、業務用スプレッドシートの標準的なやり取り形式です。Google スプレッドシート、LibreOffice、Numbers でも開けますが、マクロや高度な機能は引き継がれない場合があります。
- 圧縮方式
- –
- 透過
- –
- アニメーション
- –
- 登場時期
- 2007 · Microsoft
XML
Extensible Markup Language
XML は、1998 年に W3C が公開した、構造化データ向けのマークアップ言語です。属性を持つタグを入れ子にして記述し、スキーマ、名前空間、検証に対応しているため、複雑な文書でも堅牢に扱えます。RSS フィード、SVG、Office 文書、サイトマップ、企業や行政の多くのデータ交換の基盤になっています。JSON に比べると冗長ですが、どのプログラミング言語でも、また多くの表計算ツールでも読み込めます。
- 圧縮方式
- –
- 透過
- –
- アニメーション
- –
- 登場時期
- 1998 · W3C
シートで管理しているデータを、タグ付きレコードしか受け付けないシステムに渡す必要があるときに、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でデータを編集し、送信先から更新を求められたときにもう一度変換できます。