- ベストアンサー
CSVファイルの扱いについて
- CSVファイルを業務で扱うにあたり、皆さんはどのようにされてますか?インターネットなんかでは、とかく「テキストファイル取込みウィザードを使う」とかの方法ばかり紹介されますが、あんな小難しく面倒な方法を、みんな使われているのでしょうか?
- 1回や2回ならともかく、何度もCSVを開くに当たっては、テキストファイル取込みウィザードをいちいち使ってたら時間がかかりすぎます。項目数の多いCSVを扱いますし。
- 周囲にそのやり方を説明しても、七面倒臭いので受け入れられません。私はマクロができるので、もうマクロで取り込むようにしてますが。皆さんはどのようにされてますか?CSVはExcelで開いてコピペとかするようにしてますか?でもそれだと、Excelの独自解釈機能によって「0001」みたいな文字は先頭のゼロが欠損したりするし、困るんですよね。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エクセルでcsvファイルを開く時、に特化したお話ですね? 日々ちょこちょこ使うcsvファイルをエクセルで取り込むのであれば、 そのためのマクロを組みます。 単発で入ってくるファイルをエクセルで表示するのであれば、 必要に応じてウィザードを使います。 もしくは、テキストエディタで開きます。 csvファイルはあくまでもComma Separated Values、 項目ごとにカンマで区切られた「テキストファイル」ですから、 アプリケーション間で書き出し・取り込みなどの 互換・交換を容易にするためのフォーマットであり、 エクセルで開かなければいけないモノではありません。 ちなみに私は、フリーソフトですが http://www.asukaze.net/soft/cassava/ これを利用させてもらっています。 それでも「csvはエクセルで開きたい」と言う方が多いのも事実ですね。 そんな人のために、エクセルで表示することを前提としてcsvファイルを作るときは 各項目を「="0001"」とするように、出力側で設定しています。 まぁ、それも八面倒臭い作業ではあるんですけどね。 「できない人」にできるようになってもらう面倒臭さに比べれば・・ ・・と、私は割り切っています。
その他の回答 (2)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
単にCSVファイルと言っても、アプリケーションに依存するファイルです。 ・セル内に改行コードが含まれている場合 ・セル内にASCII文字しか含まれてない場合 ・セル内に,や"が含まれているときのエスケープ方法 などが、出力するアプリケーションによって異なります。システムから出力させるときにエクセル出力のフォーマットで出力させればよいのでは? あくまでMicrosoftのエクセルが出力するCSVとしてなら、そのままコンテキストメニューからエクセルを選択すれば、開けるはずです。 0001が、1になってしまうのは、出力するシステムの側の問題です。エクセルから出力されるものならセルに'0001と入力されていれば、CSVも0001になっているはずです。 他の用途で使うときは、たとえばHTMLのtableに使ったりするときは、Perlで 【引用】____________ここから while (my $line = <DATA>) { $line .= <DATA> while ($line =~ tr/"// % 2 and !eof(DATA)); $line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/; @values = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_} ($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g); # @values を処理する }  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Perlメモ( http://www.din.or.jp/~ohzaki/perl.htm#CSVwithCRLF )]より とか・・
お礼
システム出力時のフォーマットも、考え直した方が良さそうですね。
- PXU10652
- ベストアンサー率38% (777/1993)
「皆さんはどのようにされてますか?」 何度も使用する同じフォーマットのファイルなら、Accessで、項目名と属性(「0001」を「文字列」など)を指定して、その情報を保存しておき、次回読み込み時にもそれを利用して読み込ませます。 Excelで使うには、一旦Exportする必要がありますが、それも含めてAccessのマクロで組むのも手だと思います。
お礼
有難うございます。良いんですけど、マクロ等の知識がないとキツそうですよね。私は分かりますけど、知識がない一般ユーザには、ちょっと敷居が高いのかなあと・・・。
お礼
有難うございます。やっぱりマクロとかが必要そうですね。ちなみに私のケースでは、CSVの用途はとかく、「Excelにそのまま展開する」ことに尽きます。ですから、テキストエディタで開いたとして、それをどうやってExcelに展開するのかということが残ります。またCSVは自分で作るのではなく、システムから自動出力されたものを利用します。