C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: エクセルからCSVにするときのカンマの数


(過去ログ 15 を表示中)

[トピック内 15 記事 (1 - 15 表示)]  << 0 >>

■5453 / inTopicNo.1)  エクセルからCSVにするときのカンマの数
  
□投稿者/ なぞなぞ (1回)-(2007/07/13(Fri) 13:39:08)

分類:[C#] 

こちらで質問するような内容ではない気がしますが困っているのでお願い致します。
C#でCSVを読み込みデータベースに格納するものを作成いたしました。

データが1万件などありますが、全列、全行に値が入っていれば正確にカンマが出てくると思います。
ですが、後半の列にすべての行が値を入れていない場合、カンマの数が正確にでていませんでした。
一番上の行に必要な列分値を試しに入れましたが、その場合上から20行ほどはカンマが正確に出ていますが
のこりがまったく出ていませんでした。すべての行にたいして正確にカンマを出す方法をお聞きしたいです

お願い致します。


引用返信 編集キー/
■5454 / inTopicNo.2)  Re[1]: エクセルからCSVにするときのカンマの数
□投稿者/ じゃかるた (61回)-(2007/07/13(Fri) 14:01:43)
No5453 (なぞなぞ さん) に返信
> C#でCSVを読み込みデータベースに格納するものを作成いたしました。
>
> データが1万件などありますが、全列、全行に値が入っていれば正確にカンマが出てくると思います。
> ですが、後半の列にすべての行が値を入れていない場合、カンマの数が正確にでていませんでした。
> 一番上の行に必要な列分値を試しに入れましたが、その場合上から20行ほどはカンマが正確に出ていますが
> のこりがまったく出ていませんでした。すべての行にたいして正確にカンマを出す方法をお聞きしたいです

本来CSVファイルの作成方法が知りたいんじゃないですよね?

つまりCSVファイルを読み込んでDB登録をしたいが、行によってCSVの項目の数が違うのでうまく登録できない。
だから項目数を合わせれば登録できるはず。でもどうすれば?

ということではないですか?
違っていたらすいません...

引用返信 編集キー/
■5455 / inTopicNo.3)  Re[2]: エクセルからCSVにするときのカンマの数
□投稿者/ なぞなぞ (2回)-(2007/07/13(Fri) 14:10:51)
No5454 (じゃかるた さん) に返信
> ■No5453 (なぞなぞ さん) に返信
>>C#でCSVを読み込みデータベースに格納するものを作成いたしました。
>>
>>データが1万件などありますが、全列、全行に値が入っていれば正確にカンマが出てくると思います。
>>ですが、後半の列にすべての行が値を入れていない場合、カンマの数が正確にでていませんでした。
>>一番上の行に必要な列分値を試しに入れましたが、その場合上から20行ほどはカンマが正確に出ていますが
>>のこりがまったく出ていませんでした。すべての行にたいして正確にカンマを出す方法をお聞きしたいです
>
> 本来CSVファイルの作成方法が知りたいんじゃないですよね?
>
> つまりCSVファイルを読み込んでDB登録をしたいが、行によってCSVの項目の数が違うのでうまく登録できない。
> だから項目数を合わせれば登録できるはず。でもどうすれば?
>
> ということではないですか?
> 違っていたらすいません...

言葉が足りず申し訳ありません。そのとおりです。エクセルファイルからCSVに変換は分かります。
すべての行、を同じ列数分のカンマにしたいです。
いろいろ試しましたが、うまくいきませんでした。

>
引用返信 編集キー/
■5456 / inTopicNo.4)  Re[3]: エクセルからCSVにするときのカンマの数
□投稿者/ たなか (3回)-(2007/07/13(Fri) 14:25:12)
列の一番最後にダミー列を作り、必ず値を入れておくとか。
引用返信 編集キー/
■5457 / inTopicNo.5)  Re[4]: エクセルからCSVにするときのカンマの数
□投稿者/ じゃかるた (62回)-(2007/07/13(Fri) 14:30:23)
CSVの編集だけでよいのなら、Excelで開いてデータ範囲を選択し、
フォントと書式を変更してcsvで上書き保存してみてください。

引用返信 編集キー/
■5458 / inTopicNo.6)  Re[1]: エクセルからCSVにするときのカンマの数
□投稿者/ mあ (17回)-(2007/07/13(Fri) 14:36:30)
No5453 (なぞなぞ さん) に返信
> こちらで質問するような内容ではない気がしますが困っているのでお願い致します。
> C#でCSVを読み込みデータベースに格納するものを作成いたしました。

これ、split(strCsvLine, 5)
ってやると、カンマが連続している部分が省略されないで常に5カラムの要素を持つ
配列を取得することができる、
てのは関係ないですか?

str1 = "1,2,3,4,5";
split(str1, 5) =>
[0] = "1"
[1] = "2"
[2] = "3"
[3] = "4"
[4] = "5"

str2 = "1,2,3,,";
split(str2)
[0] = "1"
[1] = "2"
[2] = "3"

str3 = "1,2,,,5";
split(str3)
[0] = "1"
[1] = "2"
[2] = "5"

str4 = "1,,,,";
split(str4, 5)
[0] = "1"
[1] = ""
[2] = ""
[3] = ""
[4] = ""
だったような希ガス

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemstringclasssplittopic.asp
.NET Framework2.0 から Split が使えるそうです。

引用返信 編集キー/
■5459 / inTopicNo.7)  Re[2]: エクセルからCSVにするときのカンマの数
□投稿者/ なぞなぞ (4回)-(2007/07/13(Fri) 14:42:56)
No5458 (mあ さん) に返信
> ■No5453 (なぞなぞ さん) に返信
>>こちらで質問するような内容ではない気がしますが困っているのでお願い致します。
>>C#でCSVを読み込みデータベースに格納するものを作成いたしました。
>
> これ、split(strCsvLine, 5)
> ってやると、カンマが連続している部分が省略されないで常に5カラムの要素を持つ
> 配列を取得することができる、
> てのは関係ないですか?
関係ないってどういうことですか??
とりあえずはいそのsplitというメソッドと同じ取得方法で取得しています
コードは違いますが。

> str1 = "1,2,3,4,5";
> split(str1, 5) =>
> [0] = "1"
> [1] = "2"
> [2] = "3"
> [3] = "4"
> [4] = "5"
>
> str2 = "1,2,3,,";
> split(str2)
> [0] = "1"
> [1] = "2"
> [2] = "3"
>
> str3 = "1,2,,,5";
> split(str3)
> [0] = "1"
> [1] = "2"
> [2] = "5"
>
> str4 = "1,,,,";
> split(str4, 5)
> [0] = "1"
> [1] = ""
> [2] = ""
> [3] = ""
> [4] = ""
> だったような希ガス
>
> http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemstringclasssplittopic.asp
> .NET Framework2.0 から Split が使えるそうです。


>
引用返信 編集キー/
■5460 / inTopicNo.8)  Re[5]: エクセルからCSVにするときのカンマの数
□投稿者/ なぞなぞ (6回)-(2007/07/13(Fri) 16:21:44)
No5457 (じゃかるた さん) に返信
> CSVの編集だけでよいのなら、Excelで開いてデータ範囲を選択し、
> フォントと書式を変更してcsvで上書き保存してみてください。

返答ありがとう御座います。
ファイトと書式をどのように変更するんですか?
お願いします。
引用返信 編集キー/
■5461 / inTopicNo.9)  Re[3]: エクセルからCSVにするときのカンマの数
□投稿者/ じゃかるた (63回)-(2007/07/13(Fri) 16:34:00)
2007/07/13(Fri) 16:40:03 編集(投稿者)

No5460 (なぞなぞ さん) に返信
>ファイトと書式をどのように変更するんですか?
なんでもいいです。
例えばフォント「9」の「MS明朝」とか。

#csvは書式情報を持ちませんが、この儀式を行うことでデータがあると判断されるそうな...
範囲選択をお忘れなく。
引用返信 編集キー/
■5463 / inTopicNo.10)  Re[4]: エクセルからCSVにするときのカンマの数
□投稿者/ なぞなぞ (7回)-(2007/07/13(Fri) 16:52:06)
No5461 (じゃかるた さん) に返信
> 2007/07/13(Fri) 16:40:03 編集(投稿者)
>
> ■No5460 (なぞなぞ さん) に返信
> >ファイトと書式をどのように変更するんですか?
> なんでもいいです。
> 例えばフォント「9」の「MS明朝」とか。
>
> #csvは書式情報を持ちませんが、この儀式を行うことでデータがあると判断されるそうな...
> 範囲選択をお忘れなく。

出来ました。ありがとう御座います。
でもなんかぴんとこないやり方ですね
普通のやり方って言うか別の方法はないんですかね?
でもありがとうございました
引用返信 編集キー/
■5464 / inTopicNo.11)  Re[5]: エクセルからCSVにするときのカンマの数
□投稿者/ じゃかるた (64回)-(2007/07/13(Fri) 16:56:30)
No5463 (なぞなぞ さん) に返信
> でもなんかぴんとこないやり方ですね
> 普通のやり方って言うか別の方法はないんですかね?
> でもありがとうございました

C#側でCSVの可変項目に対応させる方がよいのかも知れませんね。

引用返信 編集キー/
■5465 / inTopicNo.12)  Re[6]: エクセルからCSVにするときのカンマの数
□投稿者/ まどか (329回)-(2007/07/13(Fri) 17:57:34)
#なんか話が終わりかけてますが。。。

1.元々CSVをExcelで作成している場合

未入力ではない最右端の列にあわせてカンマが付加されるはず。。。
なのでセルにカンマが無い限り、今回の現象は起きないのでは?

2.一時的な対策のためにExcelを使おうとしている場合 ※心配なので書きます

ゼロが欠落したりなどExcelがCSVと認識した際に振舞う挙動をすべて理解し、
また元データがそれに耐えうるものかどうかをきちんと検証すべきです。
読み込みと表示に重点を置きがちですが
読み込み時は拡張子を変更して無理やりウィザードを出すということができますが
保存時はユーザーが介入する余地が無くExcelの仕様に従うことになります。


引用返信 編集キー/
■5466 / inTopicNo.13)  Re[7]: エクセルからCSVにするときのカンマの数
□投稿者/ jyakaruta (1回)-(2007/07/13(Fri) 18:12:56)
2007/07/13(Fri) 18:14:13 編集(投稿者)

> ゼロが欠落したりなどExcelがCSVと認識した際に振舞う挙動をすべて理解し、
> また元データがそれに耐えうるものかどうかをきちんと検証すべきです。
> 読み込みと表示に重点を置きがちですが
> 読み込み時は拡張子を変更して無理やりウィザードを出すということができますが
> 保存時はユーザーが介入する余地が無くExcelの仕様に従うことになります。

ちなみに今回のExcelの仕様です。
http://support.microsoft.com/kb/400253/ja

#名前間違い^^; 「じゃかるた」
引用返信 編集キー/
■5467 / inTopicNo.14)  Re[8]: エクセルからCSVにするときのカンマの数
□投稿者/ なぞなぞ (8回)-(2007/07/13(Fri) 18:32:25)
No5466 (jyakaruta さん) に返信
> 2007/07/13(Fri) 18:14:13 編集(投稿者)
>
>>ゼロが欠落したりなどExcelがCSVと認識した際に振舞う挙動をすべて理解し、
>>また元データがそれに耐えうるものかどうかをきちんと検証すべきです。
>>読み込みと表示に重点を置きがちですが
>>読み込み時は拡張子を変更して無理やりウィザードを出すということができますが
>>保存時はユーザーが介入する余地が無くExcelの仕様に従うことになります。
>
> ちなみに今回のExcelの仕様です。
> http://support.microsoft.com/kb/400253/ja
>
> #名前間違い^^; 「じゃかるた」

ありがとうございました。フォント変更でどうにかします。
引用返信 編集キー/
■5468 / inTopicNo.15)  Re[9]: エクセルからCSVにするときのカンマの数
□投稿者/ なぞなぞ (9回)-(2007/07/13(Fri) 18:32:32)
No5467 (なぞなぞ さん) に返信
> ■No5466 (jyakaruta さん) に返信
>>2007/07/13(Fri) 18:14:13 編集(投稿者)
>>
> >>ゼロが欠落したりなどExcelがCSVと認識した際に振舞う挙動をすべて理解し、
> >>また元データがそれに耐えうるものかどうかをきちんと検証すべきです。
> >>読み込みと表示に重点を置きがちですが
> >>読み込み時は拡張子を変更して無理やりウィザードを出すということができますが
> >>保存時はユーザーが介入する余地が無くExcelの仕様に従うことになります。
>>
>>ちなみに今回のExcelの仕様です。
>>http://support.microsoft.com/kb/400253/ja
>>
>>#名前間違い^^; 「じゃかるた」
>
> ありがとうございました。フォント変更でどうにかします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -