这是一个相当大的问题,有很多解决方案。
1) 写入 Excel.. 有 3 种常用方法可以做到这一点,1) 将数据写入 CSV 格式,Excel 会愉快地读取它。 2) 使用 Excel Interop 创建工作簿并向其写入工作表。这需要安装 Excel 并且 3) 使用 OleDB 创建 Excel。
2) 读取 Excel...再次,您可以使用 Excel Interop 读取 Excel 工作簿,并且再次需要安装 Excel,您还可以使用 OleDB 读取 Excel 文件。
还有其他方法,但这些是最常用的。
总的来说,我会在第一个实例中使用 OleDB 来解决这个问题,StackOverflow 上有很多关于如何读取和写入 Excel 的示例。
如果您需要访问 Excel 的所有格式或图表工具,那么您将需要 Interop。它相对容易使用,并且有很多示例说明如何使用它。
编辑:
最简单的...
先在项目属性下添加对Microsoft.Office.Interop.Excel的引用,然后……
Imports Excel = Microsoft.Office.Interop.Excel
Public Class frmExcelExport
Private Sub frmExcelExport_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
dgvDataToExport.Columns.Add("C1", "Column 1")
dgvDataToExport.Columns.Add("C2", "Column 2")
dgvDataToExport.Rows.Add("Col1-Row1", "Col2-Row1")
dgvDataToExport.Rows.Add("Col1-Row2", "Col2-Row2")
End Sub
Private Sub btnExportToExcel_Click(sender As Object, e As EventArgs) Handles btnExportToExcel.Click
Dim xlApp As Excel.Application = New Excel.Application
xlApp.SheetsInNewWorkbook = 1
Dim xlWorkBook As Excel.Workbook = xlApp.Workbooks.Add
Dim xlWorkSheet As Excel.Worksheet = xlWorkBook.Worksheets.Item(1)
xlWorkSheet.Name = "Example_Export"
For nRow = 0 To dgvDataToExport.Rows.Count - 1
For nCol = 0 To dgvDataToExport.Columns.Count - 1
xlWorkSheet.Cells(nRow + 1, nCol + 1) = dgvDataToExport.Rows(nRow).Cells(nCol).Value
Next nCol
Next nRow
xlApp.DisplayAlerts = False
xlWorkBook.SaveAs("C:\Example.xlsx", Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, Type.Missing, Type.Missing, _
Excel.XlSaveAsAccessMode.xlNoChange, Excel.XlSaveConflictResolution.xlLocalSessionChanges)
xlWorkBook.Close()
xlApp.Quit()
End Sub
End Class
但是,互联网上确实有大量关于这方面的东西。这只是添加它