• ベストアンサー

CSVファイルの高速読み込み方法

お世話になります。 エクセルでサイズの大きなCSVファイルをオープンして処理をすると凄く時間が掛かって困っています。 高速で読み込み処理する方法はないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

 原因はexcelがexcel形式に直すのに時間がかかってしまうのです。CSVは単なるテキストファイルですから、例えばEmEditor( http://jp.emeditor.com/ )のようなテキストエディタで開けば、まったくストレスはないはずです。  テキストエディタ上で正規表現でも活用して編集すればよいです。またSED( http://ja.wikipedia.org/wiki/Sed_%28%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%29 )というストリームエディタを使えば一瞬で終わる。  CSVを扱うなら他の方法を考えたほうが良いですよ。excel経由じゃストレスが溜まるばかり(^^) 、

oasis701s
質問者

お礼

ご丁寧な回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.2

エクセルで開かずテキストエディタで開くほうが速いかもしれません。

oasis701s
質問者

お礼

ご回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

現状、どのように処理しているかが判らければ、提案もできません。 CSVファイルの読込みは、ハードディスクの読み出し速度以上にはなりません。 もしそのCSVファイルが1Gバイトぐらいあるなら、どんなに頑張っても(ただ読むだけでも)何分もかかります。(時には何十分もかかる)

oasis701s
質問者

お礼

ご回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • [VBA]csvファイルを開いて保存(高速化)

    いつもこちらの識者の皆様にはお世話になっております。 VBAのことで質問させてください。 毎日吐き出される複数のcsvファイルを、開いてファイル名を変えてxls形式に変更してパスワードをかけて保存する。 という処理を現在マクロで行っているのですが、特に不備はないものの、csvファイルの数が多く、時間がかかっています。 後学のために教えていただきたいのですが、この処理を高速化することは可能でしょうか? 現在はworkbooks.openでcsvを開き、workbook.saveasでファイル名・ファイル形式の変更とパスワードの設定をし、workbook.closeでファイルを閉じる。 という処理をfor iで回してやっています。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • JavaでCSVファイルを高速に読む方法

    最近、とある任務があって「数百万レコード」のCSVファイルを読み、 統計解析を実施するAPを自作したいと考えています。 しかし、ファイルのレコード数が膨大なため、解析する前にファイル読み込みに 大きな時間がかかってしまい困っています。 読み込みを高速化するために、複数のスレッドを用意し、スレッド毎に読みこむ レコードの行を決めて、並列処理を行いたいと考えたのですが・・・ ・任意の行をランダムに読むためRandomAccessFileクラスの利用を  考えたがレコードが固定長でないと利用できない。 という点があり断念しています。私も詳しくはわかっていないのですがHadoopという 技術を使ってファイルを分割して並列処理するといった方法が取られているようですが ファイルを高速に読み込む方法について、この質問を見ていただけた方の中で こうすれば高速化できるというノウハウがもしあればご教授いただけるとありがたいです。 またできれば、複数の筐体にファイルを分割して分散処理するという大掛かりの手法ではなく、 一つの筐体で並列処理して高速化したいと考えています。 Javaは、あまり詳しくなくとんちんかんな質問かもしれませんがどうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • Excel VBAにてCSVファイルを読みたい

    ExcelにてCSVファイルを読んで処理をしたい。 ただし、CSVファイルをExcelでopenすると遅いので、 VBAにてファイルとして読み込みで処理をしたいのですが、 皆さんは、どのように行っていますか? ※CSVファイルは、テキスト区切り→"(ダブルコーテーション)です  テキスト区切り無しであれば、1行読んで、カンマをsplitすれば良いと思いますが。。。。

  • csvファイルを開く方法

    csvファイルを開く方法は エクセルではなかったでしょうか?

  • CSVファイルによる検索の高速化

    CSVファイル内を検索し、一致した行を抽出して出力する際、みなさんはどのような方法を選びますか?私の手元にあるCSVファイルは3000行以上のファイルで、500KBあります。出来る限り、高速化したいのです。文字コードはUTF-8で日本語が主に書かれています。

    • ベストアンサー
    • PHP
  • CSVファイルの集計

    VB初心者の為、簡単なことかもしれませんが教えて下さい。 複数あるCSVファイルの内容を集計したいと思っています。 いずれのファイルにもコードと数量が含まれているのですが、集計したいのはそのコード毎の数量計です。 EXCELやACCESS等を使えば簡単だと思うのですが、そういった他アプリやDBなどを使わずにVBとCSVファイルのみで処理したいと考えています。 できれば処理時間も短いようなやり方があれば教えて下さい。

  • CSVファイルの開き方

    お世話になります、ソフト(Open Office org )でCSVファイルを開こうとしたのですが上手くいきませんその手順をお分かりの方教えて頂けないでしょうかよろしくお願い致します。

  • csvファイルのデータ変更方法について

    CSV(コンマ区切り)ファイルのデータ変更方法 1、エクセルでCSVファイルを開いて直接データを変更し保存する。   (1)CSVファイルをエクセルで開く時、SYLKファイルであることを確認    しましたが読み込むことが出来ません、ファイルにエラー...のメッセジーが   出るがファイルを開く事が出来る。   (2)CSVファイルをメモ帳で開きID ⇒ ”ID”に変更すると    ファイルをエクセルで開く時、エラーなく開く事ができる。     上記の方法は誤りですか?((2)の方法は私は使用していません) 2、CSVファイルをメモ帳で開き直接データを変更する。   (1)データ量が多いため変更場所を探すのに時間がかかる。   (2)CSVファイルをエクセルで開く時、エラーなく開く事ができる 以上、上記方法について其々解説をおねがいします。 また、標準的なCSVデータの変更方法、CSV取り扱い時の注意事項など教えて頂きたい。私は初心者ですのでよろしくお願いします。

  • マクロを使ったcsvファイルのインポートの方法

    お世話になります。 ( Windows 98 Second Edition : Access 2000 ) csvファイルをマクロを使ってインポートしたいのですが アクション種類、方法がわかりません。 初心者なのですが教えてください。 決まったフォルダーにcsvファイルを入れ あとはアクセスのメニュー画面で一括処理を行なう予定です。 (拡張子はcsvですがファイルの画像はエクセルの場合エクセルと考えたほうが いいのでしょうか) ファイル名はmeisai.csv user.csv head.csvの3種類です。 全て1行目はヘッダーとして使用しています。(ファイル名、ヘッダーの名称は 変わることはありません) インポートのvbaは作れるのですがこれをマクロでどのように設定使用するかが 分かりません。 一連の作業の流れとして(これは注文データです) ・メールできた暗号化ファイルを解凍しフォルダーへいれる ・3つのファイルをインポートする ・クエリでheadとmeisaiとuserを組み合わせる ・注文票としてレポート印刷する (開くたびにサイズがデフォルトに戻ってしまうのですが解消できますでしょ うか) ・更新クエリーを使い履歴を残す ・削除クエリーを使い元のテーブルを空にする 終了 以上の作業をメニュー画面のボタン一つで出来ればと考えています。ご教授お 願いいたいます。

  • CSVファイル読み込み

    VC++でCSVファイルの読み込みを作っています。 ファイル名「abc.csv」というファイルがあり CSVファイルの内容は、 "id","food" "1","バナナ" "2","オレンジ" となっています。 ソース上はファイルをオープンして 読み込むところまでは分かりましたが、 CSVファイルのコンマの分解とその後の処理が分かりません。読み込んだ後、コンボボックスで、CSVファイルのname一覧を表示する予定でいます。 例では、バナナ     オレンジ とコンボボックスで表示して選択できるようにします。 今のソースは以下の通りです。 CStdioFile file; CString name; int flag;  if(!file.Open("abc.csv",CFile::modeRead)){ AfxMessageBox("File Open failed"); } while(flag){ if(file.ReadString(name)==FALSE) //nameにデータ読み込み break; //CSVコンマを分解 //テキスファイルで読み込み?表示? } file.Close(); //file close 初心者なので間違いだらけかもしれませんが よろしくお願いしますm(__)m

このQ&Aのポイント
  • GT-X980で高dpiを選択し、スキャンに移った際にシステムが落ちる現象の回避方法や対策を教えて欲しいです。
  • Mac OS Montereyを使用している場合におけるGT-X980の高dpi選択時のフリーズ問題についての解決法を教えてください。
  • EPSON社製品であるGT-X980を使用している際に、高dpiを選択するとスキャン中にシステムが落ちる現象が発生する問題に対する対策を教えてください。
回答を見る

専門家に質問してみよう