将gridview值导出到vb.net中的.xlsx文件中
我想创建一个应用程序,在其中我可以将所需的gridview结果导出到一个新的excel文件中。如果同名文件已存在,则它将要求提供新名称,否则将创建新文件。请尝试此操作将gridview值导出到vb.net中的.xlsx文件中,vb.net,excel,Vb.net,Excel,我想创建一个应用程序,在其中我可以将所需的gridview结果导出到一个新的excel文件中。如果同名文件已存在,则它将要求提供新名称,否则将创建新文件。请尝试此操作 Private Sub ButtonExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonExport.Click Dim rowsTotal, colsTotal As Short Dim
Private Sub ButtonExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonExport.Click
Dim rowsTotal, colsTotal As Short
Dim I, j, iC As Short
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
Dim xlApp As New Excel.Application
Try
Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add
Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
xlApp.Visible = True
rowsTotal = DataGridView1.RowCount - 1
colsTotal = DataGridView1.Columns.Count - 1
With excelWorksheet
.Cells.Select()
.Cells.Delete()
For iC = 0 To colsTotal
.Cells(1, iC + 1).Value = DataGridView1.Columns(iC).HeaderText
Next
For I = 0 To rowsTotal - 1
For j = 0 To colsTotal
.Cells(I + 2, j + 1).value = DataGrid1.Rows(I).Cells(j).Value
Next j
Next I
.Rows("1:1").Font.FontStyle = "Bold"
.Rows("1:1").Font.Size = 10
.Cells.Columns.AutoFit()
.Cells.Select()
.Cells.EntireColumn.AutoFit()
.Cells(1, 1).Select()
End With
Catch ex As Exception
MsgBox("Export Excel Error " & ex.Message)
Finally
'RELEASE ALLOACTED RESOURCES
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
xlApp = Nothing
End Try
End Sub
我不推荐Rachel Gallens解决方案-当然它是有效的,但它有很多问题: 它使用互操作——这是一种非常缓慢、容易出错且在服务器场景中不可能实现的技术。 此外,互操作界面很容易使用10年——当您遇到高级问题时,您最终将处理一个复杂且没有很好文档记录的迷宫 我建议使用EPPLUS:它是一个免费的库,可以动态创建xlsx文件,速度非常快。 正如您在这里所看到的:您所要做的只是一行代码:
另外,请查看此链接是否已签出请参阅此链接可能会有所帮助它正在工作。。但在这里,我必须明确地保存excel文件。但我想用我提供的名称将其保存到一个特定的文件夹中。