📊 Excel 貼り付け用テキスト整形
CSV / TSV / 自由テキストを Excel に直接貼り付けできる TSV へ整形。RFC 4180 引用符処理、改行コード LF/CRLF 切替、数式インジェクション対策エスケープに対応。
🔒 プライバシーについて
- ・すべての処理はあなたのブラウザ内で完結します
- ・入力テキストは一切サーバーに送信されません
- ・保存ログ・履歴・データベースは存在しません
💡 使い方: コピーボタンを押した後、Excel のセルを選択して Ctrl+V (Mac は Cmd+V) で貼り付けます。
📖 つまずきやすいポイント
CSV・TSV・自由なテキストを、Excel にそのまま貼り付けられる TSV に整形します。RFC 4180 の引用符処理、LF と CRLF の切り替え、数式インジェクション対策のエスケープに対応し、処理はブラウザ内で完結します。Excel が壊すのは「読み込むとき」であって、データそのものではありません — 貼り付けた瞬間に自動変換が走るので、整形して渡すだけでなく、受け取る側の設定まで含めて考える必要があります。
| ケース | 何が起きるか | どうする |
|---|---|---|
| 先頭の 0 が消える・日付になる・指数表記になる | Excel はセルに入った文字列を片端から「数値か日付ではないか」と解釈しようとします。その結果、0123 は 123 に、1-2 は 1 月 2 日に、1/2 も日付に、1E5 は 100000 に、16 桁を超える数字は下位が 0 に置き換わります。郵便番号・電話番号・製品コード・銀行の口座番号・遺伝子名 (MARCH1 が日付になる問題は学術界で実際に命名規則の変更を招きました) が典型的な被害者です。この変換は貼り付けた瞬間に確定し、元に戻せません — 保存してしまえば情報は永久に失われます。 |
貼り付ける前に、貼り付け先の列の書式を「文字列」に設定してください。これが唯一確実な方法です — 列を選択して「セルの書式設定」から文字列を選び、それから貼り付けます。順序が逆だと効きません (すでに数値になったセルを文字列に変えても、失われた 0 は戻りません)。ファイルとして渡す場合は、相手に「CSV をダブルクリックで開かないでください」と伝えてください — Excel の「データ」タブからテキストファイルとして読み込めば、列ごとに型を指定できます。渡す前に自分で一度その手順を試しておくと、説明が具体的になります。 |
| セル内の改行で行がずれる | クリップボード経由の貼り付けでは、Excel はタブで列を、改行で行を分けます — この規則は単純で、引用符の中かどうかを見ません。したがって住所や備考欄のようにセルの中に改行を含むデータは、そこで行が分断されます。1 件だけずれるならまだしも、それ以降の全行が 1 列ずつずれるので、表全体が崩れます。CSV ファイルとして読み込む場合は RFC 4180 の引用符が効くのですが、貼り付けは別経路なので効きません — この違いに気付かないと原因が分かりません。 | 貼り付け用のデータでは、セル内の改行を事前に置換してください — スペースや / に変えるのが実務的です。Excel の中でセル内改行を作るには Alt+Enter を使いますが、これは貼り付けでは再現できません。改行をどうしても保持したいなら、クリップボードではなく CSV ファイルとして渡し、「データ」タブから読み込んでもらってください — この経路なら引用符で囲まれた改行が正しく解釈されます。どちらの経路を使うかを最初に決めてから整形するのが要点で、途中で切り替えると必ずどこかで壊れます。 |
| = で始まるセルが数式として実行される | これは表示の問題ではなく脆弱性です — CSV インジェクションと呼ばれます。攻撃者がフォームの氏名欄などに =cmd|'/c calc'!A1 のような値を入れておくと、その値を含む CSV を管理者が Excel で開いた時点で、管理者の端末でコマンドが実行されます。あなたのサーバーは何も悪いことをしていないのに、あなたの CSV が攻撃の運び屋になります。危険な先頭文字は = だけではなく、+・-・@、さらにタブ (0x09) とキャリッジリターン (0x0D) も同じ扱いを受けます。 |
このページの「数式エスケープ」を有効にしてください — 危険な文字で始まる値の前にシングルクォートを付け、Excel に文字列として扱わせます。ただし本質的な対策はサーバー側です — ユーザーが入力した値を CSV として書き出す処理があるなら、その出力側で同じエスケープを必ず実装してください。これはXSS 対策と同じ構造の問題で、「入力時に弾く」のではなく「出力時にエスケープする」のが正しい設計です (入力時に弾くと、正当な値 — 数式のように見える化学式や会計の -100 — まで拒否することになります)。OWASP がこの攻撃を独立した項目として扱っていることからも、軽視できる問題ではありません。 |
クリップボード経由の貼り付けには、文字コードの問題が起きないという大きな利点があります — これがこのツールが TSV を出す理由です。ファイルとして渡す場合、Excel は BOM の無い UTF-8 の CSV を、日本語環境では Shift-JIS として読もうとして文字化けします。回避するには UTF-8 with BOM で保存するのが定石ですが、今度は受け取ったプログラム側で 1 列目のヘッダ名の先頭に見えない \ufeff が付きます — 「なぜか id という列が見つからない」という症状はこれで、Python なら encoding="utf-8-sig" で読めば取り除かれます。もう 1 点、TSV は値の中にタブを含められません — RFC 4180 のような引用符の規約が無いためで、値にタブが入りうるデータは、貼り付け前にスペースへ置換してください。区切り文字が値の中に現れないことを保証できるのが、CSV より TSV が扱いやすい理由でもあります。
📖 使い方
-
1
CSV や TSV を貼り付け入力欄に元データを貼り付けます。区切り文字は自動判定可能。
-
2
オプションを設定Windows Excel なら CRLF + 数式エスケープ ON 推奨。
-
3
変換ボタンを押すTSV (タブ区切り) として右側に出力されます。
-
4
コピーして Excel に貼り付けコピーボタン → Excel のセルで Ctrl+V。各セルに正しく分割されます。
❓ よくある質問
数式エスケープとは何ですか?
LF と CRLF どちらを選ぶべきですか?
セル内に改行を含めることはできますか?
🔗 関連ツール
🐛 このツールで問題が発生しましたか?
完全無料・登録不要。再現手順だけでも結構です。届いたご報告は運営者に直接届き、修正の参考にします。
ご報告ありがとうございます!
運営者に届きました。改善の参考にさせていただきます。