我正在从excel电子表格中读取整数列到数据网格视图,但它只是不起作用。我尝试了两种方法,一种是使用循环,另一种是使用OleDb。麻烦的线之前的代码使用OleDb完美填充另一个DGV,其中一列完全填充,所以我不知道它为什么第二次没有工作。这就是我得到的:
方法1 ---
Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" & FormFile & """;Extended Properties=""Excel 12.0;HDR=YES;""")
'Fill dataviewgrid1 with element symbols, string' THIS WORKS PERFECTLY!!
da = New OleDbDataAdapter("select * from [" & sheetname & "$A13:A" & lrow & "]", cn)
ds = New System.Data.DataSet
da.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
'Fill dataviewgrid2 with compositions, string' THIS DOESN"T WORK, AND I DONT GET ANY ERROR MESSAGES. NOTHING HAPPENS.
da2 = New OleDbDataAdapter("select * from [" & sheetname & "$B13:B" & lrow & "]", cn)
ds2 = New System.Data.DataSet
da2.Fill(ds2)
DataGridView2.DataSource = ds2.Table
重申一下,填写dgv1是成功的。填充dgv 2不成功,并且不会弹出任何错误或任何错误。这是我尝试的另一种方式:
方法2:
DataGridView.ColumnCount = 1
For xrow As Integer = 13 To lrow - 1
DataGridView.Rows.Add
DataGridView2.Item(0, xrow - 13).Value = xlWsheet2.Cells(xrow, 2).Value
Next
这让我错误'索引超出范围'。
为什么我无法使用它?
答案 0 :(得分:0)
我相信我找到了纠正上述方法2的答案。我没有定义xlWsheet2。
我仍然不确定为什么方法1不起作用。