みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CSVファイルの扱いについて

CSVファイルを業務で扱うにあたり、皆さんはどのようにされてますか?
インターネットなんかでは、とかく「テキストファイル取込みウィザードを使う」とかの方法ばかり紹介されますが、あんな小難しく面倒な方法を、みんな使われているのでしょうか?
1回や2回ならともかく、何度もCSVを開くに当たっては、テキストファイル取込みウィザードをいちいち使ってたら時間がかかりすぎます。項目数の多いCSVを扱いますし。
周囲にそのやり方を説明しても、七面倒臭いので受け入れられません。私はマクロができるので、もうマクロで取り込むようにしてますが。

皆さんはどのようにされてますか?CSVはExcelで開いてコピペとかするようにしてますか?でもそれだと、Excelの独自解釈機能によって「0001」みたいな文字は先頭のゼロが欠損したりするし、困るんですよね。

投稿日時 - 2012-11-11 10:02:38

QNo.7791993

暇なときに回答ください

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

エクセルでcsvファイルを開く時、に特化したお話ですね?


日々ちょこちょこ使うcsvファイルをエクセルで取り込むのであれば、
そのためのマクロを組みます。

単発で入ってくるファイルをエクセルで表示するのであれば、
必要に応じてウィザードを使います。

もしくは、テキストエディタで開きます。
csvファイルはあくまでもComma Separated Values、
項目ごとにカンマで区切られた「テキストファイル」ですから、
アプリケーション間で書き出し・取り込みなどの
互換・交換を容易にするためのフォーマットであり、
エクセルで開かなければいけないモノではありません。
ちなみに私は、フリーソフトですが
  http://www.asukaze.net/soft/cassava/
これを利用させてもらっています。


それでも「csvはエクセルで開きたい」と言う方が多いのも事実ですね。
そんな人のために、エクセルで表示することを前提としてcsvファイルを作るときは
各項目を「="0001"」とするように、出力側で設定しています。

まぁ、それも八面倒臭い作業ではあるんですけどね。
「できない人」にできるようになってもらう面倒臭さに比べれば・・
・・と、私は割り切っています。

投稿日時 - 2012-11-11 16:22:21

お礼

有難うございます。やっぱりマクロとかが必要そうですね。ちなみに私のケースでは、CSVの用途はとかく、「Excelにそのまま展開する」ことに尽きます。ですから、テキストエディタで開いたとして、それをどうやってExcelに展開するのかということが残ります。またCSVは自分で作るのではなく、システムから自動出力されたものを利用します。

投稿日時 - 2012-11-11 17:13:15

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

単に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 )]より
とか・・

投稿日時 - 2012-11-12 09:15:16

お礼

システム出力時のフォーマットも、考え直した方が良さそうですね。

投稿日時 - 2012-11-12 20:27:01

ANo.1

「皆さんはどのようにされてますか?」

 何度も使用する同じフォーマットのファイルなら、Accessで、項目名と属性(「0001」を「文字列」など)を指定して、その情報を保存しておき、次回読み込み時にもそれを利用して読み込ませます。

 Excelで使うには、一旦Exportする必要がありますが、それも含めてAccessのマクロで組むのも手だと思います。

投稿日時 - 2012-11-11 12:38:51

お礼

有難うございます。良いんですけど、マクロ等の知識がないとキツそうですよね。私は分かりますけど、知識がない一般ユーザには、ちょっと敷居が高いのかなあと・・・。

投稿日時 - 2012-11-11 13:17:38

あなたにオススメの質問