3

次のコードは、CSVファイルをデータグリッドにインポートします。唯一の問題は、CSVファイルの行をヘッダーに入力することです。ヘッダーを空白のままにし、その後に行をインポートする必要があります。お知らせ下さい。

        If OpenFileDialog1.ShowDialog(Me) = DialogResult.OK Then


        Dim fi As New FileInfo(OpenFileDialog1.FileName)
        Dim sConnectionStringz As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Text;Data Source=" & fi.DirectoryName
        Dim objConn As New OleDbConnection(sConnectionStringz)
        objConn.Open()
        'DataGridView1.TabIndex = 1
        Dim objCmdSelect As New OleDbCommand("SELECT * FROM " & fi.Name, objConn)
        Dim objAdapter1 As New OleDbDataAdapter
        objAdapter1.SelectCommand = objCmdSelect
        Dim objDataset1 As New DataSet
        objAdapter1.Fill(objDataset1, "test")
        '--objAdapter1.Update(objDataset1) '--updating
        DataGridView1.DataSource = objDataset1.Tables(0).DefaultView

        objConn.Close()
    End If
4

1 に答える 1

0

grid_ColumnAdded イベント ハンドラーで列が追加されたときにヘッダー セルを空白にするという 2 つのアイデアが思い浮かびます。

  if e.Column.HeaderText = "YourColumnHeaderText" Then        
     e.Column.HeaderText = String.Empty;

または、ストリームリーダーを使用して CSV ファイルを読み取る方が簡単かもしれません。参照: http://www.dotneter.com/import-csv-file-into-datagridview (グリッドに直接入力するのではなく、データテーブルにロードすることに注意してください) :

Dim streamReader As System.IO.StreamReader = New StreamReader(txtPath.Text)

'Reading CSV file header
rowValue = streamReader.ReadLine()
cellValue = rowValue.Split(","C)
Dim i As Integer = 0
While i <= cellValue.Count() - 1
    Dim column As New DataGridViewTextBoxColumn()
    column.Name = cellValue(i)
    column.HeaderText = cellValue(i)
    dataGridView1.Columns.Add(column)
    i += 1
End While

'Reading CSV file content
While streamReader.Peek() <> -1
    rowValue = streamReader.ReadLine()
    cellValue = rowValue.Split(","C)
    dataGridView1.Rows.Add(cellValue)
End While

最後のアイデアは、Grids データソースに割り当てる前にデータテーブルから行を削除することでした: http://msdn.microsoft.com/en-us/library/feh3ed13(v=vs.80).aspx

objDataset1.Tables(0).Rows[0].Delete();

于 2012-04-22T00:57:41.770 に答える