大容量CSVが開けない、またはアップロード上限を超える場合は、原因を「表計算ソフトの表示限界」「取込先の容量制限」「端末・ブラウザのメモリ」に分けます。ここでは320MB、約250万レコードの売上CSVを、1ファイル50MB未満に分割する例で説明します。

今回のケース:320MBの売上CSVを取り込む

元ファイル
sales_2026.csv
サイズ・件数
320MB・約250万レコード
取込先の上限
1ファイル50MB未満
必要な結果
各ファイルに同じヘッダーを付け、レコード順を保つ

単純計算で7分割すればよいとは限りません。各レコードのバイト数は異なり、引用符内の改行もあるため、安全なレコード境界で切ります。

「大きすぎる」の意味を切り分ける

制限症状対処の方向
Excelの行数・表示全行をシートに表示できない、操作が重い分割、データ取得機能、専用処理を検討
取込先のファイル容量50MBなどの上限で拒否される上限より余裕を持って分割
取込先の件数・処理時間容量内でもタイムアウトする件数上限、バッチ仕様を確認
ブラウザ・端末メモリ処理中に固まる、保存できないストリーミング処理と十分な空き容量

Excelの行数上限とファイルサイズ上限は別物です。50MBでも行数が多いことがあり、320MBでも1レコードが巨大な場合があります。

改行位置やバイト位置で直接切ると壊れる

引用符内改行では切らずCSVレコード境界で分割する説明
引用符内の改行を避け、完全なCSVレコードの間で分割します。
id,note
1,"1行目
2行目"
2,確認済み

上の物理改行だけを基準に切ると、1件目の引用符内で分断されます。任意のバイト位置で切れば、UTF-8の多バイト文字自体を壊す可能性もあります。CSVの引用符を解析し、完全な論理レコード単位で分割します。

安全に分割する手順

  1. 元のsales_2026.csvを保管します。
  2. 取込先の「50MB」が50MB以下か50MB未満か、ヘッダー有無、分割後の処理順を確認します。
  3. CSV分割ツールで、上限より余裕のある値を指定します。
  4. 「1行目をヘッダーとして扱う」と「各分割ファイルにヘッダーを付ける」を要件に合わせます。
  5. 分割数、各サイズ、全体のレコード数を確認します。
  6. 先頭・境界付近・末尾のファイルを開き、引用符内改行と日本語が保たれているか確認します。

ツールはレコードを途中で切らないため、単一レコードだけで指定サイズを超える場合、その分割ファイルは目標値を超えます。上限を必ず満たす保証ではなく、表示される警告を確認してください。

容量以外の取り込み制限

ファイルが50MB未満でも、文字コード、BOM、区切り文字、列数、ヘッダー名、1回の最大件数、1レコードの最大長、必須項目、タイムアウトで失敗する場合があります。原因が複数ありそうならCSV文字コード・総合診断で基本構造を確認します。

数GBのCSVとブラウザ処理

CSV分割ツールはファイル全体を一度に文字列化せずチャンク単位で読みますが、実用上の上限はブラウザ、端末、保存先の空き容量に左右されます。通常ダウンロードで多くのBlobを保持するより、対応ブラウザの大容量モードで指定フォルダへ直接保存するほうがメモリ負荷を抑えられます。

業務上重要な数GB級データでは、小さなコピーで設定を検証し、必要ならデータベースや社内バッチなど再実行・監査がしやすい方法も検討してください。

まとめ

大容量CSVは、容量だけでなく行数、件数、メモリ、取込先仕様を切り分けます。分割はバイトや物理改行ではなくCSVレコード境界で行い、ヘッダー、順序、分割後の件数合計を確認してから本番へ取り込んでください。