【发布时间】:2016-01-07 14:54:10
【问题描述】:
我正在尝试在我的 VB.NET 应用程序中编写一个模块,但它不能正常工作。 我正在尝试创建一个 datagridview,并将一个 excel 文件加载到其中。但是,Excel 没有加载到其中。
代码如下
Imports Microsoft.Office
Imports Microsoft.Office.Interop
Imports System.Data.OleDb
Imports System.Net.Mail
Module m_IslsHpPtSplit
Dim UploadFilePath As String
Dim UploadFileName As String
Dim dgv1 As DataGridView
Dim dgv2 As DataGridView
Public Sub LoadFile()
dgv1 = New DataGridView
dgv2 = New DataGridView
Try
Dim filedialog As OpenFileDialog = New OpenFileDialog()
Dim path As String
filedialog.Title = "Select file"
filedialog.InitialDirectory = "Desktop"
filedialog.RestoreDirectory = True
If filedialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
path = filedialog.FileName
Else
path = Nothing
End If
UploadFilePath = filedialog.FileName
UploadFileName = System.IO.Path.GetFileName(filedialog.FileName)
Dim dtSheet1 As New DataTable
If Not path = Nothing Then
Using cn As New System.Data.OleDb.OleDbConnection
Dim Builder As New OleDbConnectionStringBuilder With _
{ _
.DataSource = path, _
.Provider = "Microsoft.ACE.OLEDB.12.0" _
}
Builder.Add("Extended Properties", "Excel 12.0; IMEX=1;HDR=Yes;")
cn.ConnectionString = Builder.ConnectionString
cn.Open()
Using cmd As OleDbCommand = New OleDbCommand With {.Connection = cn}
cmd.CommandText = "SELECT * FROM [FNAC$]"
Dim dr As System.Data.IDataReader = cmd.ExecuteReader
dtSheet1.Load(dr)
dgv1.DataSource = dtSheet1
End Using
End Using
MessageBox.Show(dgv1.RowCount)
MessageBox.Show("Done")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
SplitFile()
End Sub 'LoadFile
在那之后,我需要执行一些计算等,但是行
MessageBox.Show(dgv1.RowCount)
实际上返回0。excel文件有316行。 我怎样才能让数据粘在新的 dgv 上?
【问题讨论】:
标签: vb.net excel datagridview