我想创建一个应用程序,我可以将我想要的gridview结果导出到一个新的excel文件中。如果具有相同名称的文件已经存在,那么它将要求提供一个新名称,否则它将创建新文件。
答案 0 :(得分:0)
试试这个
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
答案 1 :(得分:0)
我不推荐Rachel Gallens解决方案 - 确定它有效,但它有很多问题: 它使用Interop - 这种技术非常慢,容易出错,在服务器场景中无法做到。 此外,Interop界面很容易就绪了10年 - 当你遇到高级问题时,你最终会处理一个复杂的,没有很好记录的迷宫。
我建议使用EPPLUS:它是afree库,可以动态创建xlsx文件,速度非常快。 正如您在这里看到的:您只需要一行代码: Export DataTable to excel with EPPlus