- ベストアンサー
ファイル名をcellに入れる方法
日ごとにつくったcsvファイルを一か月分フォルダに保存していています。日ごとのcsvファイルには一行ずつのデータが詰まっています。 それをすべて1行ずつ読み込んでdatagridviewに表示したいと思います。どうすればいいでしょうか? System.IO.Directory.GetFiles("フォルダ名", "200812??.csv") これより先に進めなくて困っています。 また、その際にファイル名の??の部分をdatagridviewの列に表示したいのですがこれはどうすればできますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じになると思います、いろいろ調べて、工夫してみてください。 '実行ファイルパス名取得 Dim DirPath As String = System.IO.Path.GetDirectoryName( _ System.Reflection.Assembly.GetExecutingAssembly().Location) & "\" Dim enc As System.Text.Encoding = _ System.Text.Encoding.GetEncoding("Shift_JIS") '取得したい年月サンプルのため固定値 Dim GetYear As Integer = 2008 Dim GetMonth As Integer = 12 Dim FileName As String = Nothing FileName = Dir(DirPath) Do While FileName <> vbNullString Using reader As System.IO.StreamReader = New System.IO.StreamReader(DirPath & FileName) If DataGridView1.ColumnCount = 0 Then Dim textColumn As New DataGridViewTextBoxColumn() textColumn.Name = "データー" DataGridView1.Columns.Add(textColumn) End If DataGridView1.Rows.Add(reader.ReadLine) End Using FileName = Dir() Loop
その他の回答 (2)
- noah7150
- ベストアンサー率46% (116/251)
このサイト、基本的には丸投げ禁止ですので ここでお勉強を http://homepage1.nifty.com/rucio/main/dotnet/Samples/SmpleCnt.htm +ヒント どちらが楽か?と考えるとデザインでカラムを作っておいて その月の日数分をレコード数にして 先頭にファイル名をセットして読み込んだ行をSplitして貼り付けて行く方が楽かな? あや、似たような回答が既に入力されていた
- ainax
- ベストアンサー率45% (5/11)
自分の場合だったとしたらですが、 1.GetFilesで取得したファイル名をFor Each文で回す。 2.ファイル名から??の部分を取得しておく 3.ファイルを開き1行ずつ最終行まで読む 4.読み込んだ行の文字列に??の部分をCSVの区切り文字付きで合成 5.合成した文字列を区切り文字単位で文字列配列に分割 6.予め作っておいたDataTableの新しい行に、5.の文字列配列を追加する。 という感じでDataTableを作成してから最後にDataGridViewに突っ込みます。 問題点は、全てのCSVファイルが同じ列分あることですね。 詳しくは参考URLを見てみて下さい。