将csv文件导入到vb.net中具有特定列和行的datagridview中
请帮帮我,这是我第一次尝试在vb.net中将excel文件导入datagridview。这种情况是,我的excel文件有如此多的数据,我只需要将从B列开始的值导入i列,并且起始行必须位于B列中的“开始”一词处,并以“结束”一词结束。到目前为止,这是我的代码:将csv文件导入到vb.net中具有特定列和行的datagridview中,vb.net,excel,datagridview,import,showdialog,Vb.net,Excel,Datagridview,Import,Showdialog,请帮帮我,这是我第一次尝试在vb.net中将excel文件导入datagridview。这种情况是,我的excel文件有如此多的数据,我只需要将从B列开始的值导入i列,并且起始行必须位于B列中的“开始”一词处,并以“结束”一词结束。到目前为止,这是我的代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click OpenFil
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
试试这个:
Dim objCmdSelect As New OleDbCommand("SELECT * FROM [Sheet1$B14:I24]", objConn)
假设B14是您的起始行
,I24是您的最后一列/行记录
更新:
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
首先,不要执行
选择*
指定所需的列,即那些与列B到列I相关的列。这些列负责列筛选。对于行,您可能必须预处理CSV以将开始和结束之间的行移动到加载的新临时文件。开始和结束是否表示数据范围之类的其他内容?编辑您的帖子以添加一点CSV,因为几乎不可能在没有数据的情况下进行数据分析。如何在excel中选择特定列sir@Proputinix如果这是来自excel,为什么不提取并导出您需要的确切范围,而不是在代码中进行?而且,这看起来不像CSV-没有CSV。您可能需要将其作为文本打开,并提取要保存到临时文件中的行。计划在.xls类型的文件中,我上面显示的数据只是该文件中所有数据的一部分。我的老板不想再提取数据或列/行了,她只是想上传.xls文件,让系统来做。很抱歉,我遇到了这个错误:“Microsoft Jet数据库引擎找不到对象‘Sheet1$B14_I24.txt’。请确保对象存在,并且正确拼写其名称和路径名。”csv文件来自openDialogbox。请使用此。。。Dim objAdapter1作为新的OleDbDataAdapter(“从[Sheet1$B14:I24]中选择*”,objConn)跳过OledbCommand,直接使用OleDbDataAdapter试试看。@Aljie请查看我的更新帖子。。我在您的连接字符串中添加了一些属性。感谢您的努力,先生,我使用了您的代码,并收到以下错误消息:“Microsoft Jet数据库引擎无法打开文件‘C:\Documents and Settings\Administrator\Desktop’。该文件已由其他用户以独占方式打开,或者您需要查看其数据的权限。”打开任务管理器>服务,然后结束处理所有“EXCEL”,然后运行应用程序。