2016年9月29日木曜日

【Excel】巨大テキストファイル(100万行以下)を作成

■目的
 ソフトウェア開発の試験フェーズで背景データとして、100万行程度のcsvやsqlファイルを作成したいことがある。

■概要
 bat、vbs、PowerShellでループして巨大ファイルを作成しようとするとかなりの時間がかかってしまう。100万行以下ならExcelで作成したほうが早い場合が多い。Excelを使った巨大ファイル作成手順を以下に記載する。ただし、Excel2007以降は、最大1,048,576行なので、1,000万行などのデータは作成できない。

■制限・条件等
 Excel2007以上が必須。

■例
 以下のようにID、苗字、名前、メールアドレスをカンマで区切った100万行のファイルを作成したいとする。PC性能とExcelの慣れ次第だが早い場合は、3~10分程度で作成完了する。

1,nanashi1,1rou,1rou@hogehoge
2,nanashi2,2rou,2rou@hogehoge
3,nanashi3,3rou,3rou@hogehoge

999999,nanashi999999,999999rou,999999rou@hogehoge
1000000,nanashi1000000,1000000rou,1000000rou@hogehoge

■手順(時間のかかる箇所について自宅PCでの処理時間を目安として記載する。)
 1. Excelを起動。(下記ではExcelウィンドウを小さくしているため、見栄えが変わっている。)
 2. A1となってい所(名前ボックス)をクリックし、選択状態にする。
 3. A1000000と入力。
 4. 任意の文字を入力。(以下ではaとしているが、後で消すのでなんでもよい。ただの目印。)
 5. Ctrl + Cを押下。
 6. Ctrl + Shift + ↑キーを押下。
 7. Ctrl + Vを押下。≪数秒程度≫
 8. Ctrl + ↑を押下。
 9. 『1』を入力。
 10. 『2』を入力。
 11. A1,A2を選択(A1からA2へマウスをドラッグ)。
 12. オートフィルハンドル(選択レンジの右下の点)にマウスカーソルを合わせる。(合わせると、マウスカーソルが十字になる。)
 13. オートフィルハンドルをダブルクリック。≪十数秒程度≫
 14. B1に『="nanashi"&A1』を入力。
 15. C1に『=A1&"rou"』を入力。
 16. D1に『=A1&"rou@hogehoge"』を入力。
 17. B1~D1を選択。
 18. オートフィルをダブルクリック。≪十数秒~数分程度≫
 以下のように100万行のExcelデータができる。
 19. Sheet2,Sheet3を選択。(Sheet2をクリックし、その後Ctrlを押しながらSheet3をクリック。)
 20. 選択したシートを右クリックして、 「削除」を選択。

 21. Alt + F、Aの順にキーを押下。
 22. ファイルの種類でCSVを選択。
 23. 適切なファイル名を入力し、「保存」ボタンを押下。≪十数秒程度≫
下記のように49MB、100万行のファイルが作成される。

0 件のコメント:

コメントを投稿