【发布时间】:2018-06-25 17:49:33
【问题描述】:
目前,我可以通过一个按钮将 excel 文件导入我的 datagridview。我尝试了许多在网上找到的要导入的不同代码,最后找到了一个有效的代码,只需稍加改动即可。我遇到的最大问题是“读取”excel文件中单元格的内容,如果有某个我不想要的验证步骤,程序不会导入文件。
例如,在第 1 列中,如果有一个小于 0 的数字,则应取消导入。
或者另一个例子,如果一个列(应该只是数字)有一个字母条目,则应该取消导入。
在其他语言中,我可以把它想象成简单的 If 语句,但我是 VB 新手。
如果有人能引导我走向正确的方向,那将不胜感激
我使用的主页是; Importing Excel Data in Datagridview using VB.Net
我当前的代码;
Dim dbconnect As OleDb.OleDbConnection
Dim dta As OleDb.OleDbDataAdapter
Dim dts As DataSet
Dim excel As String
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog.Filter = "All Files (*.*)|*.*|Excel files (*.xlsx)|*.xlsx|CSV Files (*.csv)|*.csv|XLS Files (*.xls)|*xls"
If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim file As New FileInfo(OpenFileDialog.FileName)
Dim FileName As String = OpenFileDialog.FileName
' Dim selectedrowcount As Integer = DataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected)
excel = file.FullName
dbconnect = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel + ";Extended Properties='Excel 12.0;HDR=NO;IMEX=1'")
dta = New OleDbDataAdapter("select * from [Feuil1$]", dbconnect)
' dta = New OleDbDataAdapter("select * from [Sheet1$]", dbconnect)
dts = New DataSet
dta.Fill(dts, "[Feuil1$]")
' dta.Fill(dts, "[Sheet1$]")
DataGridView1.DataSource = dts
DataGridView1.DataMember = "[Feuil1$]"
dbconnect.Close()
DataGridView1.DefaultCellStyle.Format = "N2"
DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
' MsgBox("Data has been imported")
End If
End Sub
【问题讨论】:
-
dts 中有您的数据...在填充命令后进行验证。如果不通过,不要将其指定为数据网格的来源
-
感谢您的意见。我想我明白了,所以在填充命令之后..它会是一种方法吗?在另一个子中创建? '在填充命令之后,就像你说的 dta.Fill(dts, "[Feuil1$]") verifyStep() 我会在 'end Sub' 之后定义这个函数吗?或者是否有可能/更好地在同一个 Sub 内完成这一切?
标签: excel vb.net visual-studio datagridview import