【发布时间】:2016-01-19 20:11:42
【问题描述】:
我的项目中有 2 个按钮可以从 Excel 导入并导出到 Excel 和一个 datagridview。我可以毫无问题地导入 Excel 文件,但是当我从 datagridview 导出到 Excel 并尝试重新导入该文件时,我只得到一个带有“F1”的列标题:
这是导出按钮的代码:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'Creamos las variables
Dim exApp As New Excel.Application
Dim exLibro As Excel.Workbook
Dim exHoja As Excel.Worksheet
Try
'Añadimos el Libro al programa, y la hoja al libro
exLibro = exApp.Workbooks.Add
exHoja = exLibro.Worksheets.Add()
' ¿Cuantas columnas y cuantas filas?
Dim NCol As Integer = DataGridView1.ColumnCount
Dim NRow As Integer = DataGridView1.RowCount
'Aqui recorremos todas las filas, y por cada fila todas las columnas
'y vamos escribiendo.
For i As Integer = 1 To NCol
exHoja.Cells.Item(1, i) = DataGridView1.Columns(i - 1).Name.ToString
Next
For Fila As Integer = 0 To NRow - 1
For Col As Integer = 0 To NCol - 1
exHoja.Cells.Item(Fila + 2, Col + 1) = DataGridView1.Item(Col, Fila).Value
Next
Next
'Titulo en negrita, Alineado al centro y que el tamaño de la columna
'se ajuste al texto
exHoja.Rows.Item(1).Font.Bold = 1
exHoja.Rows.Item(1).HorizontalAlignment = 3
exHoja.Columns.AutoFit()
'Aplicación visible
exApp.Application.Visible = True
exHoja = Nothing
exLibro = Nothing
exApp = Nothing
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
我能做些什么来解决它??
谢谢。
【问题讨论】:
-
最好的猜测是您将需要在 Excel 的第一行列名。例如,如果您要使用 OleDb 导入并且第一行中没有列名,并且在连接的扩展属性下设置 HDR=“是”,如果 HDR=“没有列标题,则第一行将被视为数据不”反之。除了 OleDb 之外,我还没有看到 F1 问题,建议如此处所示 SELECT F1 As FirstName 而不是说 SELECT * 这会导致 Fn 其中 n 为工作表中的每一列递增
-
能否也显示另一个按钮的代码?
标签: vb.net excel datagridview