民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS 念には念を入れてさらに Excel での CSV 読み込みを確認した

<<   作成日時 : 2008/08/15 00:01   >>

ブログ気持玉 0 / トラックバック 0 / コメント 2

以前は
0123,"0123"
というファイルを作って、test.csv という名前で保存し、Excel で開くテストをした。
すると、
|123|123|
こうなって、失敗した。

今回はさらに別のテストパターンとして
0123 "0123"
(二つの値のあいだにTABが入っている)
というファイルを作って、拡張子をCSV(いわゆるタブ区切りのCSV)とし、Excelで開くテストをしてみた。
すると
|0123"0123"|
という形で、一つのセルの中にデータが全部入ってしまった。

続いて、
0123,'0123
というファイルを作ってもみた。Excelでセル内に頭が0の文字列を入力するには、セルの書式を「文字列」にする方法もあるが、セルに入力する際に1文字目に「'」(アポストロフィ)をつけるという方法もある。
これをテキストファイル上でやってみた。
すると
|123|'123|
となってしまった。セルに直接「'0123」と入力するとアポストロフィが消えて |0123| となるのだが、テキストファイルからだと、アポストロフィはアポストロフィとして残ってしまうようだ。セルの内容をコピーしてテキストエディタにペーストすると、アポストロフィが現れてしまった。というわけでやはり失敗。


このあたりで、私の頭の中のネタは完全に尽きた。
Excel で、電話番号や郵便番号の頭の0が飛ばないようにCSVを読み込む「正統な」方法はない。
こう結論づけるしかないようだ。

さて、お客さんにはどう説明しようか。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(2件)

内 容 ニックネーム/日時
「データ」メニューの「外部データの取り込み」>「データの取り込み」でCSVを開くと、ウィザードが出てフィールドタイプを設定できるので、全フィールドを文字列で読み込めば問題なかった気がします。
新しめのExcelならできるはず。
AC
2008/08/15 05:58
これはこれはACさん、すばらしい示唆ありがとうございます。
隣の席にあったExcel 2007で試したらうまくいきました。ちょっと調べたところ、Excel 2002あたりからの機能のようですね。MS社も考えてはいたのですね。これで問題の90%以上(かなり主観的)は解決です。重ね重ねありがとうございます。

しかし、残り10%の問題のために、このネタもう少しひっぱります。
残り10%の問題というのは、Excel 2000 以前を使っているお客さまへの対応と、数値と文字が混在していてなおかつフィールド数が多いデータ(私の業務では日常茶飯事)の場合にウィザードの操作が面倒になるという問題の2点になります。

問題がこの2点だけになってしまうと、逆に少し寂しかったり...
kazuyoshikakihara
2008/08/15 09:02

コメントする help

ニックネーム
本 文
念には念を入れてさらに Excel での CSV 読み込みを確認した 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる