
お世話になります。
CSVファイルをExcelファイルに変換する場合、CSVファイルをExcelで開いて拡張子を「xls」もしくは「xlsx」を指定して保存すればよいかと思いますが、PCにExcelがインストールされてない環境の場合、Excelに変換することは不可能でしょうか。
今回、Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。
なので、インポートする前準備としていったんExcelに変換したいと考えているのですが。。そのPCにExcelがインストールされてないと、やはり変換することは出来ないでしょうか。
もしくは、カンマ区切りのCSVファイルをタブ区切りに変換したりすることは出来ますでしょうか。
ご教授の程、宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
>Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。
毎回同じCSVのフォーマットだったら
(項目数やデータ型など)
一度インポートウィザードで進めて行って
設定ボタンから定義を保存し
次回からはその定義名を使用してインポートしては?
VBAならDocmd.transferText のヘルプにあるSpecificationNameに定義名を入れます。
・・・じゃダメかいな?
>インポートする前準備としていったんExcelに変換したい
CSVファイルを直接開くとExcelのお節介機能で
電話番号などの前ゼロがなくなったり、ハイフン付きのデータが日付と解釈されたり・・・
ということががあるので、拡張子CSVをTxtに変えてから
Excelで開こうとするとウィザードが立ち上がって・・・と出来ますが
結局のところ二度手間です。
ご参考まで。
この回答への補足
ウィザードにある
フィールド区切り記号は「カンマ」
テキスト区切り記号を「”」
にすることで、項目2が区切られずにインポートすることができました!
ありがとうございました。これを定義に登録したので、VBAでインポートするときにこの定義名を指定してあげればってことですよね。
早速試してみたいと思います。
ありがとうございました。
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がカンマで区切りされない・・ということでしょうか?
実際に、インポートウィザードを開いて定義の画面を開いている状態なのですが、どこをどうすれば区切られなくできるのかわかりません。
その辺をご教授頂けると幸いです。

No.3
- 回答日時:
パソコンにメモ帳があるから、それで読み込んで編集できますよ
そして、拡張子はcsvのままで保存
miura8miiuraさま
ご回答ありがとうございます。
また、説明不足で申し訳ございません。単語にカンマが含まれているものはダブルクォーテーションで囲まれてます。
確かにメモ帳で開いて編集することは可能ですが。。
当該CSVファイルは約60万行あります。なので、「単語にカンマが含まれるもの」を何らかの方法で検索し、カンマを別の文字列に変換し、インポート後にその文字列をカンマに戻すというような処理をしなければなりませんので、その処理だけで結構重くなることを懸念しております。
また、「単語にカンマが含まれるもの」を見つける為のプログラムを作り込まなければなりません。
なので、単純にExcelに変換すれば問題なくインポートできるようになるので、それが一番いいかなと思った次第です。
No.2
- 回答日時:
>スキマソフトウェア:CSV to Excel
>http://soft.sukima.client.jp/csv2excel/
このようなものがありました
ダブルクォートで囲っているものは1つの文字列として処理するなど、ちゃんとやってくれるようです。
asciizさま
ご回答ありがとうございます。
当該ソフトはコマンドラインでも使えるようなのでよさそうですね。
但し、
>列数 39、行数 1000、約 300 KB の CSVファイルの変換時間は、約40秒
との記載がありました。
今回のCSVは約60万行(14列)あるので、単純に計算すると400分。。6時間以上かかることになりますが、とりあえず検証してみたいと思います。
ありがとうございました。
No.1
- 回答日時:
> ・・・そのデータの中には単語の中にカンマが含まれているものがある為、・・・
そのようなデータであればExcelでも不都合が発生します。
まずはcsvとして扱えるようにデリミッタ(区切り文字)を正確に付けておくことから始める必要があります。
csvは何もExcelでなければ扱えないということはありません。
たとえばフリーのLibre Officeでも扱えます。
PowerShellでも簡単に扱えます。
いずれにしてもデリミッタを識別してデータ処理するものです。
ktedsさま
ご回答ありがとうございます。
説明不足で申し訳ございません。当該CSVファイルで単語にカンマが含まれているものに関しては、ダブルクォーテーションで囲まれてます。なので、Excelにするとちゃんとその単語は1つのセルに収まり、そのExcelをインポートすると問題無いことは確認済みです。
Libre Office、PowerShellについて調べてみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLSever 一括インポートについて
-
【Access】クエリで抽出...
-
Wordの文章をExcelに内容ごとに...
-
テキストデータを項目で分けたい
-
複数のエクセルファイルをアク...
-
CSVファイルを固定長のテキスト...
-
差し込み印刷の元データファイ...
-
ISOファイルとMDSファイル
-
CSVファイルがカンマ区切りにな...
-
Excelブックの共有をしているの...
-
エクセルで質問です。 ハイパー...
-
アクセスにエクセルで作成され...
-
excel で通知と読み取り専用の...
-
イーファンビューでwebpファイ...
-
Word差し込み印刷、フォルダの...
-
Excel>PERSONAL.XLSが開かれて...
-
【マクロ】名前を保存する際に...
-
EXCEL VBA 指定したファイルが...
-
共有フォルダの最終アクセス者...
-
2つめのExcelファイルを開くと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Wordの文章をExcelに内容ごとに...
-
【Access】クエリで抽出...
-
SQLSever 一括インポートについて
-
Excelのデータ(数字)をテキス...
-
notepad++ で作成した文書を cs...
-
複数eml形式のBecky!への一括イ...
-
osv形式ファイル
-
CSVファイルでの数字表記のエラー
-
複数のメールファイルを1つの...
-
CSVファイルとテキストファ...
-
多数のeml形式ファイルを1つの...
-
mdbをテキストに変換するツール...
-
アクセス2007でのインポートエ...
-
ACCESS複数テキストファイルを...
-
列数が4000を超えるcsvファイル...
-
VBA 複数のCSVファイルを一度...
-
エクセル2000で65536行を超える...
-
【AccessVBA】ダイアログで複数...
-
windows live メール2011からou...
-
テキストデータを項目で分けたい
おすすめ情報