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

解決済みの質問

CSVをExcelに変換したい

お世話になります。

CSVファイルをExcelファイルに変換する場合、CSVファイルをExcelで開いて拡張子を「xls」もしくは「xlsx」を指定して保存すればよいかと思いますが、PCにExcelがインストールされてない環境の場合、Excelに変換することは不可能でしょうか。

今回、Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。

なので、インポートする前準備としていったんExcelに変換したいと考えているのですが。。そのPCにExcelがインストールされてないと、やはり変換することは出来ないでしょうか。

もしくは、カンマ区切りのCSVファイルをタブ区切りに変換したりすることは出来ますでしょうか。

ご教授の程、宜しくお願い致します。

投稿日時 - 2014-09-03 19:18:14

QNo.8741112

すぐに回答ほしいです

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

>Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。

毎回同じCSVのフォーマットだったら
(項目数やデータ型など)
一度インポートウィザードで進めて行って
設定ボタンから定義を保存し
次回からはその定義名を使用してインポートしては?
VBAならDocmd.transferText のヘルプにあるSpecificationNameに定義名を入れます。
・・・じゃダメかいな?

>インポートする前準備としていったんExcelに変換したい
CSVファイルを直接開くとExcelのお節介機能で
電話番号などの前ゼロがなくなったり、ハイフン付きのデータが日付と解釈されたり・・・
ということががあるので、拡張子CSVをTxtに変えてから
Excelで開こうとするとウィザードが立ち上がって・・・と出来ますが
結局のところ二度手間です。

ご参考まで。

マルチメディアファイルは削除されたか見つかりません。

投稿日時 - 2014-09-04 09:37:34

補足

ウィザードにある
 フィールド区切り記号は「カンマ」
 テキスト区切り記号を「”」
にすることで、項目2が区切られずにインポートすることができました!

ありがとうございました。これを定義に登録したので、VBAでインポートするときにこの定義名を指定してあげればってことですよね。
早速試してみたいと思います。

ありがとうございました。

投稿日時 - 2014-09-04 15:13:48

お礼

NotFound404さま
いつもご回答ありがとうございます。

例えば、
 ID 項目1 項目2
 1  ああ   835
 2  いい   121
 3  うう    832
 4  ええ  1,053
 5  おお  5,231

という内容のCSVファイルをインポートする場合、インポートウィザードでは自動的にフィールド4が生成され、
 ID 項目1 項目2 フィールド4
 1  ああ   835
 2  いい   121
 3  うう    832
 4  ええ    1   53
 5  おお    5  231
に区切られてしまいます(要するにカンマで区切られてしまう)。
このような場合、インポート定義しておけば項目2がカンマで区切りされない・・ということでしょうか?

実際に、インポートウィザードを開いて定義の画面を開いている状態なのですが、どこをどうすれば区切られなくできるのかわかりません。

その辺をご教授頂けると幸いです。

投稿日時 - 2014-09-04 15:01:06

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

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

回答(4)

パソコンにメモ帳があるから、それで読み込んで編集できますよ

そして、拡張子はcsvのままで保存

投稿日時 - 2014-09-03 19:53:47

お礼

miura8miiuraさま

ご回答ありがとうございます。
また、説明不足で申し訳ございません。単語にカンマが含まれているものはダブルクォーテーションで囲まれてます。

確かにメモ帳で開いて編集することは可能ですが。。
当該CSVファイルは約60万行あります。なので、「単語にカンマが含まれるもの」を何らかの方法で検索し、カンマを別の文字列に変換し、インポート後にその文字列をカンマに戻すというような処理をしなければなりませんので、その処理だけで結構重くなることを懸念しております。
また、「単語にカンマが含まれるもの」を見つける為のプログラムを作り込まなければなりません。

なので、単純にExcelに変換すれば問題なくインポートできるようになるので、それが一番いいかなと思った次第です。

投稿日時 - 2014-09-04 09:10:13

ANo.2

>スキマソフトウェア:CSV to Excel
http://soft.sukima.client.jp/csv2excel/

このようなものがありました

ダブルクォートで囲っているものは1つの文字列として処理するなど、ちゃんとやってくれるようです。

投稿日時 - 2014-09-03 19:45:12

お礼

asciizさま
ご回答ありがとうございます。
当該ソフトはコマンドラインでも使えるようなのでよさそうですね。

但し、
>列数 39、行数 1000、約 300 KB の CSVファイルの変換時間は、約40秒
との記載がありました。

今回のCSVは約60万行(14列)あるので、単純に計算すると400分。。6時間以上かかることになりますが、とりあえず検証してみたいと思います。

ありがとうございました。

投稿日時 - 2014-09-04 09:22:41

ANo.1

> ・・・そのデータの中には単語の中にカンマが含まれているものがある為、・・・

そのようなデータであればExcelでも不都合が発生します。
まずはcsvとして扱えるようにデリミッタ(区切り文字)を正確に付けておくことから始める必要があります。
csvは何もExcelでなければ扱えないということはありません。
たとえばフリーのLibre Officeでも扱えます。
PowerShellでも簡単に扱えます。
いずれにしてもデリミッタを識別してデータ処理するものです。

投稿日時 - 2014-09-03 19:38:15

お礼

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

説明不足で申し訳ございません。当該CSVファイルで単語にカンマが含まれているものに関しては、ダブルクォーテーションで囲まれてます。なので、Excelにするとちゃんとその単語は1つのセルに収まり、そのExcelをインポートすると問題無いことは確認済みです。

Libre Office、PowerShellについて調べてみたいと思います。

ありがとうございました。

投稿日時 - 2014-09-04 09:02:39

あなたにオススメの質問