• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:巨大なCSVファイルを編集したい)

巨大なCSVファイル編集の方法とは?

doara_2011の回答

  • ベストアンサー
回答No.6

そりゃExcelのワークシートには読み込める行数の制限はありますが、 VBAでファイルの読み書きをする分には問題ないはず。(ただ、3GB位のテキスト ファイルを読んだことがあるだけで、大容量のファイルの書き出しは したことはないのだけれど。この時のExcelのバージョンは2000です。) 以下、VBAのサンプル。 Sub 列を絞る() fno1 = FreeFile Open "入力ファイル名" For Input As fno1 fno2 = FreeFile Open "出力ファイル名" For Output As fno2 Do While Not EOF(fno1) Input #fno1, a1, a2, a3, a4, a5 Write #fno2, a1, a3, a5 ' a1 の前後に"(ダブルコーテーション)が挿入されます。 ' 都合が悪ければ以下を使用のこと。 ' Print #fno2, CStr(a1); ","; CStr(a3); ","; CStr(a5) Loop Close fno1 Close fno2 End Sub Sub 行を分割() fno1 = FreeFile Open "入力ファイル名" For Input As fno1 fno2 = FreeFile Open "出力ファイル名" For Output As fno2 Do While Not EOF(fno1) Input #fno1, a1, a2, a3, a4, a5 If a1 = "a001" Then Write #fno2, a1, a2, a3, a4, a5 End If Loop Close fno1 Close fno2 End Sub フリーウェアを使用するのに制限がないのなら、No.1さんのgrep, awkを使用するのが お勧めです。特にプログラムを書かなくても(書いても1行程度)実行可能なのが魅力です。 列を絞る場合:   awk -F, '{ OFS=","; print $1, $3, $5; }' 入力ファイル名 > 出力ファイル名 行を分割する場合:   grep "a001" 入力ファイル名 > 出力ファイル名 以上

tarte777
質問者

お礼

大変丁寧に説明してくださって、ありがとうございます。 無事に目的を達成することができました。

関連するQ&A

  • MacintoshでCSVファイルを編集したい

    元々ホームページ上に置いてある、フォームのCSVファイルをダウンロードし、ExcelやWordで読み込んだ後、文字の編集をして再度CSVファイルとして書き出し、同じ場所へアップロードをしたいのですが、再編集をすると、アップロードした後確認しても、フォームが全く表示されません。 文字も何も見ることができません。 編集ソフトが悪いのかと思い、他のテキストエディタ等も試したのですが、結果は同じでした。 CSVファイルを編集するソフトを探してみたのですが、Macintosh版は見つかりませんでした。 CSVファイルはカンマ区切りのテキストなので、原理としてはテキストエディタで編集すればOSは関係ないものだと思っていたのですが、Macintoshだからうまくできないのでしょうか? ご教授ください。

  • csvファイルについて

    javaで、csvファイルを読み取り、データベースにいれるツールを作成しています。 csvファイルを読み込む部分でつまづいてしまったので、どなたかご教授ください! 指定されたcsvファイルを一行ずつ取り込むのですが、一つの情報が2行以上になってしまうデータがいくつかあり、ファイルチェックとして、1つ目のカラムは何文字のものだとかしているけれども、その前の行の続きに当たる行が、その条件から外れてしまい、エラーになってしまいます。(当たり前ですが、、、) なぜ、csvファイルが一行に収まらないのかが、わかずですし、それを一行として読み込むことができるのかが不明で困っております。   原因や対処法が分かれば、教えていただければと思います。 よろしくお願いします。

  • CSVファイル作成について・・

    パソコンは長くやっているのですが エクセルに関してはほぼ素人です。 私は今CSV形式のファイルを作る必要がありまして、 エクセルは使えないので(技術的に; テキストエディタで作っているのですが constitute 動詞 …を構成する convert   動詞 …を変える,変わる cultivate 動詞 …を耕作する,…を栽培する このようなのを以下 500行近くコピーしてきて constitute ,動詞 …を構成する convert   ,動詞 …を変える,変わる cultivate ,動詞 …を耕作する,…を栽培する 当方このように手動でカンマを入れてるんですが^^; なにか素早くできる良い方法はありませんでしょうか・・・>< できればテキストエディタで・・ エクセルでなら簡単にできるのでしたら よかったらやり方を教えていただけると 助かります(;ω;)  ちなみにiphone用のアプリ(単語帳)のために読み込ませるCSVファイルです。 よろしくお願いしますm(__)m

  • エクセルで編集したCSVファイルを読み込むときに

    よろしくお願い致します。 エクセルで編集したCSVファイルを読み込み、HTMLとして表示するCGIがあります。 エクセルでCSVファイルを編集すると最後の項目の後にカンマ(,)が付かないのですが、 使用しているCGIでは、カンマがないと行が改行されたとみなされません。 行の最後にカンマがなくても行を改行させるには、どのようなコードを追加すればよいのでしょうか? CGIのCSVファイルの読み込みする部分のコードは以下のようになっています。 # ログファイル読み込み my $LOG_FILE = 'log.csv'; my $io = IO::File->new($LOG_FILE, 'r') or die $!; flock($io, 1); while(my $line = $io->getline) { push @ids, (split(/,/, $line))[0]; push @new_checks, (split(/,/, $line))[1]; push @dates, (split(/,/, $line))[2]; push @contents, (split(/,/, $line))[3]; push @contents2, (split(/,/, $line))[4]; push @contents3, (split(/,/, $line))[5]; push @contents4, (split(/,/, $line))[6]; push @contents5, (split(/,/, $line))[7]; push @contents6, (split(/,/, $line))[8]; } 分かりにくい説明で申し訳ありません。 補足説明も致しますので、どうぞよろしくお願い致します。

    • ベストアンサー
    • CGI
  • ExcelでのCSVファイルの編集について、

    ExcelでのCSVファイルの編集について、 オートフィルタ機能を使いたいため、 ExcelでCSVファイルの編集しようとしているのですが、ちょっと苦戦しています。。。 私が試してみたこと 1.もとのCSVファイルの拡張子を○○.csv → ○○.txtに変更。   ↓ 2.Excelの「開く」からその○○.txtを読み込む。   ↓ 3.テキストファイルウィザードに従い、   1「カンマやタブなどの区切り文字によって~ 」にチェック   2「区切り文字」→ カンマ、「文字列の引用符」 → "   3「列のデータ形式」 → 文字列 ※090などの数字を、90と先頭の0を消されないように 上記のような手順でCSVファイルを取り込み、編集を終え、 保存する時は   「○○.txtにはテキスト(タブ区切り)と互換性のない機能が含まれている可能性があります。    この形式でブックを保存しますか?」 → このまま保存するため「はい」を選択 これでバッチリOK!…かと思われたのですが、 元の編集前の○○.txt は"名前","ヨミ","電話番号1", …… ""とカンマ区切りであったのが、 編集後の○○.txtは名前 ヨミ 電話番号1  …… タブ区切り(?) となってしまっています。 (CSVファイルとしてはタブ区切りでも問題ないのでしょうが…) どうすれば元のカンマ区切りの形式のまま保存できますでしょうか。 アドバイスよろしくお願い致します。

  • FortranでCSVファイルを読み込む方法

    fortranでこのcsvファイルのE列、F列の5行目から14行目まで読み込んで、それぞれの平均を求めるまでのプログラムを書かなければならなくなったのですがどのようにすればよいのでしょうか。 行、列の読み飛ばしの仕方が分からなくて困っています。 また、読み飛ばし以外の方法でもできるのであれば教えてください。 プログラム言語はfortranが初めてです。よろしくお願いします。

  • エクセルVBAでCSVファイルから取り込みたいのですが・・・

    CSVファイルのデータを取り込むコードを教えていただけないでしょうか。 「共有フォルダ」の中に「作業用.xls」と「090820.csv」があります。csvファイルは日によって名前が変わりますが、必ず一つしか入れないことにしています。 CSVファイルの1行目は見出しです。2行目以降がデータになっています。 A2からI列最終行を「作業用.xls」のsheet1のA6にコピー(取り込み)したいのですが、よろしくお願いします。

  • ブラウザ上でcsvファイルの編集

    お世話になっています。 ブラウザ上でサーバにあがっているcsvファイルの編集をしたいと思っています。 そこで質問なのですが、 csvファイルをExcelみたいにテーブル表示で編集出来るもの(csvエディタ?)はあるのでしょうか? 特に、行の挿入・削除、列の追加・削除、設定に1行目をタイトルとして認識する、文字列をダブルクォーテーションで括るかどうかなどがあればうれしいです。 なければphpなどで、formとinputで自作ということになるのでしょうが・・・。 既にいいものがあればそちらを使いたいということで質問させていただきました。 http://www.ahref.org/cgi/csveditor/ のものはFirefoxでは動作しなかったので諦めました。

  • EXCEL VBAでのCSVファイルの編集

    CSVファイル(ダブルクォーテーション)形式のファイルをEXCEL VBAにて行の編集(削除)をした後、上書き保存をしたらダブルクォーテーション区切りではなくカンマ区切りのCSVファイルの形式になってしまいます。 ダブルクォーテーション区切りのCSVファイルで上書き保存する記述があれば教えて下さい。おそらくEXCELでCSV形式の上書きはCSV2の形式で保存されるみたいです。 困っています。どなたかお助け下さい。

  • AccessでCSVを読み込めない

    CSV形式(カンマ区切り)のファイルがあります。4項目あり、各項目は以下になります。 ID,名前,説明,性別 このCSVをAccess 2003でインポートしたいと思っています。ただ、以下のようなデータが入っていた場合はエラーを起こします。 "001","近藤","性格は,普通","男" といったように、説明にカンマが混じってしまっている時です。これでは正しく読み込めません。 こういった形式のデータをインポートしたい時、何か良い手はないでしょうか?よろしくお願い致します。