2014-01-23 58 views
0

請幫助我們,我第一次嘗試將excel文件導入到vb.net中的datagridview。該場景是,我的Excel文件有這麼多的數據,我只需要將列B中的值開始導入到列I中,並且開始的行必須在列B中使用單詞「開始」並結束於單詞「結束」。到目前爲止,這是我的代碼:將csv文件導入到datagridview中,在vb.net中使用特定的列和行

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop 
    OpenFileDialog1.Filter = "CSV Files (*.csv)|*.csv" 

    If OpenFileDialog1.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then 

     Try 
      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) 
      '--objAdapter1.Update(objDataset1) '--updating 
      DataGridView1.DataSource = objDataset1.Tables(0).DefaultView 

      objConn.Close() 
     Finally 


     End Try 


    End If 
End Sub 

而此代碼導入/顯示datagridview中的所有數據。我已經在各地搜索,但似乎沒有任何合適的。感謝反正..

這是示例文件:

CLIENT-RD/OT HC 8 7 8 10 11 12 10 
C-RD/OT 6:00 0 0 0 0 0 0 0 
C-RD/OT 7:30 0 0 0 0 0 0 0 
C-RD/OT 8:00 0 0 0 0 0 0 0 
C-RD/OT 9:00 8 7 8 10 11 12 10 
C-RD/OT 10:00 0 0 0 0 0 0 0 
C-RD/OT 12:00 0 0 0 0 0 0 0 
C-RD/OT 1:30 0 0 0 0 0 0 0 

ML  0 0 0 0 0 0 0 
VL/SIL 2 4 1 1 1 2 2 
SL   1 0 1 1 1 0 0 

START     20-Jan 21-Jan 22-Jan 23-Jan 24-Jan 25-Jan 26-Jan 
CEBU      MON TUE  WED THU  FRI  SAT SUN 
Team Edna - Esca        
Adarayan, Dianne   RD RD 6:00 AM 6:00 AM 6:00 AM 6:00 AM 1:30 PM 
Bacalla, Catherine  VL VL RD/OT 7:30 7:30 AM 7:30 AM 7:30 AM RD 
Dela Cruz, Mary Ann  6:00 AM 7:30 AM RD RD 7:30 AM 7:30 AM 6:00 AM 
Dumana, John Carlos  1:30 PM 1:30 PM 1:30 PM RD RD 1:30 PM 1:30 PM 
Macabodbod, Evelyn  9:00 AM 9:00 AM 9:00 AM 9:00 AM RD RD/OT 9:00 9:00 AM 
Mariano, Kristine   1:30 PM RD/OT 1:30 1:30 PM 1:30 PM 1:30 PM RD 7:30 AM 
Santiago, Gretchen  RD/OT 7:30 6:00 AM 7:30 AM 7:30 AM 1:30 PM 1:30 PM RD 
END 
+0

第一,不做'SELECT *'指定所需的列,即那些涉及到B列直通列一,是以列篩選的照顧。對於行,您可能需要預處理CSV以將START和END之間的行移動到加載的新臨時文件。 START AND END是否代表其他數據範圍?編輯您的帖子以添加一小部分的CSV,因爲它幾乎不可能在沒有數據的情況下進行數據分析。 – Plutonix

+0

如何在excel中選擇特定的柱子@Plutonix – Aljie

+0

如果這是來自Excel,爲什麼不提取並導出所需的確切'範圍'而不是在代碼中執行?此外,這看起來不像一個CSV - 沒有Cs。您可能必須將其作爲文本打開並將所需的行提取到臨時文件。 – Plutonix

回答

1

試試這個:

Dim objCmdSelect As New OleDbCommand("SELECT * FROM [Sheet1$B14:I24]", objConn) 

讓我們假設B14是你starting ROWI24是你的最後一列/行記錄。

更新:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop 
    OpenFileDialog1.Filter = "CSV Files (*.csv)|*.csv" 

    If OpenFileDialog1.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then 

     Try 
      Dim fi As New FileInfo(OpenFileDialog1.FileName) 
      Dim sConnectionStringz As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Text;Data Source=" & fi.DirectoryName & ";" & "Extended Properties=""Excel 8.0;HDR=NO;IMEX=1""" 
      Dim objConn As New OleDbConnection(sConnectionStringz) 
      objConn.Open() 

      Dim objAdapter1 As New OleDbDataAdapter("SELECT * FROM [Sheet1$B14:I24]", objConn) 

      Dim objDataset1 As New DataSet 
      objAdapter1.Fill(objDataset1) 

      DataGridView1.DataSource = objDataset1.Tables(0).DefaultView 

      objConn.Close() 
     Finally 


     End Try 


    End If 
End Sub 
+0

對不起,但我得到這個錯誤:「Microsoft Jet數據庫引擎找不到對象'Sheet1 $ B14_I24.txt'。請確保該對象存在,並且正確拼寫其名稱和路徑名稱。」 csv文件來自openDialogbox。 – Aljie

+0

你會請使用這個... ** Dim objAdapter1 As New OleDbDataAdapter(「SELECT * FROM [Sheet1 $ B14:I24]」,objConn)** skip ** OledbCommand **直接使用** OledbDataAdapter * *只是一個嘗試.. – Unknownymous

+0

@Aljie請參閱我更新的帖子..我在你的連接字符串中添加一些屬性。 – Unknownymous

相關問題