コンテンツへスキップ

CSVをExcelに変換

CSVファイルをきちんとしたXLSXのブックにします。数値や日付は合計・並べ替えができる値に、郵便番号や長いIDは書かれたとおりに残し、見出し行は太字・固定・フィルター付きにします。

  • 保存しません
  • 順番待ちなし
  • 登録不要・透かしなし

使い方

1

CSVファイルを追加

.csv、.tsv、.txtファイルを1つ以上ドロップするか、データを貼り付けます。複数のファイルは1つのブックのシートになります。

2

プレビューを確認

区切り文字と文字コードは自動で判別され、各列にはどの型になるかが表示されます。どれでも自由に変更できます。

3

ダウンロード

Excel、Googleスプレッドシート、Numbers、LibreOfficeで開ける.xlsxのブックです。

列の型が決まるしくみ

列は全体として調べられ、1つの型が与えられます。そして、列のほかの値がどうであれ、いくつかの特定の形があれば列はテキストに戻されます。2桁以上で先頭にゼロが付いた値が1つでもあればテキストになります。有効桁数が15桁を超える数値も同様で、これは桁の表示が変わるだけでなく、桁そのものが失われてしまう境目です。プラス記号のあとに7桁以上の数字が続くものも同様で、これは数量ではなく電話番号だからです。1つの列に2種類の通貨記号が混在している場合、小数点記号が混在している場合、そしてExcel自身のカレンダーでは扱えない1900年より前の日付がある場合もテキストになります。こうした判断はそれぞれ理由とともにプレビューに表示されるので、列がなぜテキストのままなのか首をかしげる必要はありません。

日付はセルごとではなく列ごとに判定します。12より大きい値があれば、そのファイルが日を先に書いているか月を先に書いているかが決まります。そうした値がなければ、ほかの列の判定、次にあなたの設定、最後に「日が先」の順で決めます。2つの順序が混在する列は変換せずにテキストのまま残します。推測を誤っても気づけないのがまさにこのケースだからです。2桁の年はExcel自身の規則に従い、30未満は今世紀とみなします。本物の真偽値になるのは文字どおりの単語trueとfalseだけです。yesとno、YとN、1と0はそのまま残します。どれも、どこかのファイルでは別の意味で使われているからです。

列の型に合わない値は、空欄にせず元のテキストのまま書き戻します。また、「欠損」を意味することが多い値(NA、N/A、null、nil、none、ハイフンや疑問符だけのもの、Excel自身のエラー表示)が型の決まった列に出てきても、列の型は崩れません。テキストのセルはすべて、先頭のアポストロフィではなくセルの型によってテキストとして書き込みます。そのため、等号で始まる項目はブックの中で単にごまかされているのではなく、実際に無害です。ファイルに合わない判定があれば、ダウンロードする前にプレビューで個々の列をテキストに固定できます。

ほかの目的には

この処理はページ上で動作します。タブが固まらないようにこまめに処理を譲り、ファイルサイズの上限もありません。その結果、本当に大きなCSVでは、エラーが出るより先にパソコンのファンの音が聞こえてくるでしょう。数百MBのファイルや、毎晩行う変換には、csvkitのin2csvと、画面なしモードのLibreOfficeがどちらもスクリプトから同じことを行え、ブラウザで表全体を抱え込む必要もありません。

より難しい問題は、そもそも.xlsxが正しい変換先かどうかです。ブックは人がデータを読んで編集するための場所です。ファイルをプログラムが読むだけなら、型を正しく出すために費やした時間はすべて無駄になります。その場合はCSVのままにするか、ParquetやJSON Linesに一度だけ変換し、値から推測させるのではなく、読み込む側にスキーマを宣言させましょう。型の推測は慎重に行われた推測にすぎませんが、スキーマはまったく推測ではありません。

よくある質問

CSVをそのままExcelで開けばいいのでは?

Excelはセルを1つずつ勝手に推測します。郵便番号は先頭のゼロが消え、16桁のIDは1.23457E+15になり、SEPT2のような遺伝子名は日付に変わり、セミコロン区切りのファイルは1列に詰め込まれます。この変換ツールは列ごとに、その列のすべての値を見て1回だけ判断し、列全体が一致したときだけ変換します。

日付はどのように判別されますか?

列ごとに判別します。15/03/2024と03/15/2024は、同じ列にあるほかの日付から区別します。ISO形式の日付、時刻、月名も認識します。日付は本物のExcelの日付になり、書かれていた順序のまま表示されます。本当にどちらとも取れる列なら、「日が先」か「月が先」を自分で選んでください。

ファイルがセミコロン区切りで、小数点がカンマです。

自動で判別します。9,8は数値の9.8に、1.234,56は1234.56になります。区切り文字と小数点記号は手動で設定することもできます。

どの文字コードに対応していますか?

UTF-8とUTF-16を判別し、古いWindowsのソフトで保存されたファイル(西欧・中欧、キリル文字、ギリシャ語、トルコ語、ヘブライ語、アラビア語、日本語、中国語、韓国語)も認識または選択できます。そのため、ą、ß、Ж、日本といった文字も正しく出力されます。

データはどこかに保存されますか?

いいえ。ファイルの読み込みもブックの書き出しもここで行います。どこにも送信されず、何も保存されません。

ブックを開いたときにCSVの数式が実行されることはありますか?

いいえ。=で始まるセルは数式ではなく必ずテキストとして保存されるので、悪意のあるCSVがExcelで何かを実行することはできません。型の判別をオフにすれば、すべてのセルがそのままテキストとして残ります。

ご注意: Excelの1シートに入るのは最大1,048,576行です。それより長いファイルは、見出し行を繰り返して追加のシートに続けます。非常に大きなファイル(数百MB)は、お使いの端末のメモリに左右されます。

このツールをあなたのサイトに設置

ブログ、授業のページ、ヘルプ記事などに無料で設置できます。コードを1つ貼り付けるだけで、訪問者がそのページ上でツールを使えるようになります。