# CSV から Excel へ

URL: https://discuvr.org/csv-to-excel/?hl=ja
Last updated: 2026-11-07
MCP tool: `preview_csv_as_excel`

CSV を貼り付けると、入力しながら Excel シートとしてプレビューできます。先頭のゼロや長い ID を保持し、数式インジェクションを防いで、本物の .xlsx をダウンロード。

レポートのエクスポート、銀行の取引明細、同僚から届いたデータ。表は CSV でやり取りされますが、Excel で開くとよく崩れます。郵便番号や社員番号は先頭のゼロが消え、口座番号は 1.23E+15 になり、日付の形式も変わってしまいます。CSV をここに貼り付ければ、ダウンロードする前にスプレッドシートとしてどう表示されるかを正確に確認できます。

## 機能

- 貼り付けた瞬間に、列の英字と行番号付きでスプレッドシートをライブプレビュー。
- カンマ、セミコロン、タブ、縦線の区切り文字を自動判定。手動でも選べます。
- 数値と日付は本物の Excel の値になり、先頭のゼロや長い ID は文字列のまま残ります。
- ダウンロードしたブックでは見出し行が太字、固定、フィルター付き。
- = + - または @ で始まる文字列は文字列として保存され、数式として実行されることはありません。
- ダウンロードは任意です。ファイルを求めるまで、何もブラウザーの外に出ません。

## 仕組み

1. CSV を貼り付けるか、.csv ファイルを開くか、サンプルを読み込みます。
2. プレビューと判定された列の型を確認します。
3. ファイル名を付け、必要なら .xlsx をダウンロードします。

## 値を文字列のまま残す理由

Excel は数値を有効数字 15 桁で保存するため、16 桁のカード番号や口座番号は知らないうちに変わってしまいます。郵便番号や社員番号のように先頭がゼロの値は、そのゼロを失います。このツールは何も失われない場合にだけ値を数値や日付に変換し、それ以外はすべて貼り付けたとおりの文字列として残します。

## 数式インジェクション対策

= で始まる CSV のセルは、ファイルを開いたときに実行される数式である可能性があり、エクスポートされたシートを開いた人を狙う既知の攻撃手法です。ブック内の文字列セルはすべてプレーンテキストとして書き込まれるため、CSV の中身が実行されることはありません。

## 実例：数値、日付、それともテキスト

「数値と日付を検出」がオンのとき、各セルは個別に判定されます。125000.50 は数値 125000.5 になり（小数 2 桁で表示するには Excel で列の書式を設定）、-1500.75 は負の数のままです。007 や郵便番号 040001 は先頭のゼロを保ったテキストになります。123456789012345（15 桁）は数値ですが、1234567890123456（16 桁）はテキストのままなので、どの桁も丸められません。2026-10-01 と 31/10/2026 は本物の日付になり、2026-02-30 は実在しない日なのでテキストのままです。桁区切りや小数点のカンマ（1,234 や 1.234,56）、パーセント記号（12%）、指数表記（1e5）、先頭の + はすべて貼り付けたとおりのテキストになります。見出しのセルは常にテキストです。

## 値の中のカンマ、改行、区切り文字

ダブルクォートで囲まれた値は、中身が何であっても 1 つのセルです。"Rao & Sons, Pune" はカンマを保ち、改行を含む引用符付きの住所も 1 つのセルに収まり、引用符の中で連続する 2 つのダブルクォートは 1 つとして扱われるので、"Quote ""Q4"" retainer" は Quote "Q4" retainer になります。区切り文字は最初の 20 行から判定します。カンマ、セミコロン、タブ、縦棒のうち、1 行目に最も多く現れ、以降の行でも同じ回数現れるものが選ばれるため、小数点にカンマを使う設定の Excel から出たセミコロン区切りのファイルも正しく読めます。プレビューの列がおかしい場合は区切り文字を自分で選んでください。途中の空行は空の行として残り、末尾の空行は削除されます。型の判定では数値の前後の空白は無視されます（" 42 " は 42 になる）が、テキストのセルは空白をそのまま保ちます。

## ファイルを開くと日本語が � になる

「ファイルを開く」はファイルを UTF-8 として読み込みます。Excel の CSV UTF-8 形式、Google スプレッドシート、多くのシステムが書き出すのはこの形式です。Windows 版 Excel で通常の CSV として保存したファイルは古い Windows のコードページ（日本語環境では Shift_JIS）を使うことが多く、その場合は日本語や é、ü、ñ などの文字が � と表示されます。CSV UTF-8 で保存し直すか、正しく表示できるテキストエディターで開いてテキストをここに貼り付けてください。ファイル先頭のバイトオーダーマーク（BOM）は取り除かれるので、最初の見出しにくっつくことはありません。逆に、ダウンロードした .xlsx はテキストを Unicode で保存するため、プレビューで正しく見える日本語、ヒンディー語、アラビア語の名前は Excel でも正しく表示されます。BOM のない UTF-8 の CSV を Windows 版 Excel でダブルクリックして開くと、そうならないことがよくあります。

## 質問

**データはアップロードや保存されますか?**

プレビューはブラウザ内で作られます。CSV がサーバーに送られるのは「ダウンロード」を押したときだけで、サーバーはブックをメモリ上で作成し、同じレスポンスで返します。ディスクには何も書き込まれず、利用記録に残るのは行数と列数、区切り文字、見出し行の設定だけで、セルの値やファイル名は一切残りません。

**どの日付形式に対応していますか?**

yyyy-mm-dd と dd/mm/yyyy です。これらは dd/mm/yyyy 形式で表示される本物の Excel の日付になります。それ以外は文字列のまま残り、推測はしません。

**どのくらいの大きさの CSV を変換できますか?**

最大 5,000,000 文字、100,000 行、500 列までです。プレビューは最初の 500 行を表示し、ダウンロードにはすべての行が含まれます。 Excel 自体の上限である 32,767 文字を超えるセルは、その長さで切り詰められます。ダウンロードは IP アドレスごとに 10 分間 40 回までです。

**米国式の日付（mm/dd/yyyy）のファイルはどうなりますか？**

スラッシュ区切りの日付は日/月/年としてのみ読み取られます。10/31/2026 は日が先の日付にはなり得ないのでテキストのままですが、03/04/2026 は 3 月 4 日ではなく 2026 年 4 月 3 日になります。月が先のファイルでは、「数値と日付を検出」のチェックを外してすべてのセルを元のテキストのまま残すか、曖昧さのない yyyy-mm-dd 形式で日付を書き出してください。

**ダウンロードしたブックはどんな形ですか？**

シートは 1 枚で、入力したファイル名がシート名になります（Excel のシート名の上限である 31 文字で切り詰め）。空欄なら data です。「1 行目は見出し」がオンなら、その行は薄いグレーの背景に太字で表示され、スクロールしても見えるよう固定され、各列にフィルター ボタンが付きます。列幅は列内でいちばん長い値に合わせ、最大 60 文字分です。日付は dd/mm/yyyy 形式、空のフィールドは空のセルのままで、数式やマクロは含まれません。プレビューで編集したセルもダウンロードに反映されます。

**Excel が先頭のゼロを消してしまいました。元に戻せますか？**

桁数が決まっているコードだけ戻せます。Excel は値を数値に変換するとき先頭のゼロを削除し、有効桁数を 15 桁までしか保持しないため、1234567890123456 のような 16 桁の口座番号はすでに最後の桁を失っています。シートを直すのではなく、元の CSV を開き直してください。6 桁のコードなら、新しい列に =TEXT(A1,"000000") と入れると 040001 が文字列として戻り、ユーザー定義の表示形式 000000 を使えばセルを数値のまま先頭のゼロを表示できます。避けたいときは、ここで CSV を変換してください。040001 や 1234567890123456 は文字列のセルとして書き込まれます。Excel 側では、Data > From Text/CSV（データ > テキストまたは CSV から）で取り込み、読み込む前にその列を文字列に設定するか、Microsoft 365 の File > Options > Data > Automatic Data Conversion（自動データ変換）で先頭のゼロと 15 桁のオプションをオフにします。

**1,234.50 や 12,5 のような金額が文字列のままなのはなぜですか？**

変換されるのは単純な数値だけです。任意のマイナス記号、数字、小数点としてのピリオドが最大 1 つ、たとえば 1234.50 や -42 です。桁区切り（1,234.50）、小数点のカンマ（12,5）、通貨記号（$100）、パーセント記号（50%）、先頭のプラス（+5）、指数（1e5）、先頭がゼロの整数（007）は元の文字列のまま残ります。読み取るには形式を推測する必要があるからです。Excel でこうした列を数値にするには、=NUMBERVALUE(A2,".",",") で 1,234.50 を 1234.5 として、=NUMBERVALUE(A2,",",".") で 2.500,27 を 2500.27 として読み取れます。関数名と引数の区切り記号（, または ;）は Excel の言語と地域の設定に従います。変換された 1234.50 は、列に小数点以下 2 桁の表示形式を設定するまで 1234.5 と表示されます。

**Excel に緑の三角形と「数値が文字列として保存されています」と表示されます。問題がありますか？**

いいえ、意図どおりです。040001 や 16 桁の 1234567890123456 のような値は、ゼロや全桁を残すために文字列のセルとして書き込まれ、Excel のエラー チェックは数値に見える文字列すべてに印を付けます。SUM と AVERAGE は範囲内の文字列セルを飛ばします。ID やコードにはこれが正しい動作ですが、文字列の列は合計できる金額ではないということです。印を消すには、セルを選択して警告アイコンをクリックし、Ignore Error（エラーを無視する）を選ぶか、File > Options > Formulas > Error checking rules（ファイル > オプション > 数式）で Numbers formatted as text or preceded by an apostrophe のチェックを外します。Convert to Number（数値に変換する）は、先頭のゼロや 15 桁目より後の数字が重要でない列にだけ使ってください。

## オフィスとデータのその他のツール

- [PDF に署名](https://discuvr.org/sign-pdf/?hl=ja)
- [墨消し](https://discuvr.org/redact/?hl=ja)
- [IPアドレス確認](https://discuvr.org/what-is-my-ip/?hl=ja)
- [大文字小文字変換と行ツール](https://discuvr.org/case-converter/?hl=ja)

## よく一緒に使われるツール

- [JSON フォーマッター](https://discuvr.org/json-formatter/?hl=ja)
- [テキスト比較](https://discuvr.org/text-diff/?hl=ja)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
