【发布时间】:2017-03-16 15:45:53
【问题描述】:
我的输出追加了 datagridview 中的当前列,而我想查看从 excel 文件到 datagridview 系列的输出。我该怎么办? 我能否得到解决方案,因为我无法在新的 datagridview 中导入 excel 文件要求是将所有 excel 单元格导入到当前 datagridview 中的对应位置。
Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
Dim excel As String
Dim OpenFileDialog As New OpenFileDialog
Dim conn As OleDbConnection
Dim dta As OleDbDataAdapter
DataGridView2.Rows.Clear()
Dim dts As DataSet
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
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 fi As New FileInfo(OpenFileDialog.FileName)
Dim FileName As String = OpenFileDialog.FileName
excel = fi.FullName
conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel + ";Extended Properties=Excel 12.0;")
dta = New OleDbDataAdapter("Select * From [Sheet1$]", conn)
dts = New DataSet
dta.Fill(dts, "[Sheet1$]")
DataGridView2.DataSource = dts
DataGridView2.DataMember = "[Sheet1$]"
conn.Close()
With DataGridView2
.RowHeadersVisible = False
.Columns(0).HeaderCell.Value = "Enrollment No"
.Columns(1).HeaderCell.Value = "Name"
.Columns(2).HeaderCell.Value = "Sub Name"
.Columns(3).HeaderCell.Value = "Examination"
.Columns(4).HeaderCell.Value = "Semester"
.Columns(5).HeaderCell.Value = "Out of"
.Columns(6).HeaderCell.Value = "Marks Obtained"
.Columns(7).HeaderCell.Value = "Grade"
End With
DataGridView2.Columns.Item(0).Width = 100
DataGridView2.Columns.Item(1).Width = 120
DataGridView2.Columns.Item(2).Width = 100
DataGridView2.Columns.Item(3).Width = 70
DataGridView2.Columns.Item(4).Width = 90
DataGridView2.Columns.Item(5).Width = 50
DataGridView2.Columns.Item(6).Width = 70
DataGridView2.Columns.Item(7).Width = 70
DataGridView2.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
With DataGridView2
.RowHeadersVisible = False
.Columns(0).HeaderCell.Value = "Enrollment No"
.Columns(1).HeaderCell.Value = "Name"
.Columns(2).HeaderCell.Value = "Sub Name"
.Columns(3).HeaderCell.Value = "Examination"
.Columns(4).HeaderCell.Value = "Semester"
.Columns(5).HeaderCell.Value = "Out of"
.Columns(6).HeaderCell.Value = "Marks Obtained"
.Columns(7).HeaderCell.Value = "Grade"
End With
DataGridView2.Columns.Item(0).Width = 100
DataGridView2.Columns.Item(1).Width = 120
DataGridView2.Columns.Item(2).Width = 100
DataGridView2.Columns.Item(3).Width = 70
DataGridView2.Columns.Item(4).Width = 90
DataGridView2.Columns.Item(5).Width = 50
DataGridView2.Columns.Item(6).Width = 70
DataGridView2.Columns.Item(7).Width = 70
DataGridView2.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
With Me.DataGridView2
.RowsDefaultCellStyle.BackColor = Color.WhiteSmoke
.AlternatingRowsDefaultCellStyle.BackColor = Color.Lavender
End With
MsgBox("Importing Data has been Cancelled")
End If
End Sub
【问题讨论】:
-
您是在问如何一次处理多个文件?如果是这样,创建一个字符串数组并在 OleDbConnection 之前循环遍历它
-
不,先生,我在 pict 2 中得到的输出应该显示在 pict 1 列中。即 pict 1 包含我在 dgw add 列中输入的标题,该列保持为空,毕竟dgw 的列在整个 excel 文件上显示。但我想要的是注册号的数据,名称子名称应该显示在第一个图片的列中(我在 dgw 中输入的列)而不是附加 dgw 列的整个 excel 文件。
标签: sql-server vb.net visual-studio