我正在使用Microsoft Office 2007和Visual Studio 2010。
单击 Windows 窗体上的按钮后,我想将 DataGridView 的数据保存到 Excel 文件中。
我还想通过单击按钮将 Excel 文件中的数据加载到 DataGridView 中。
请帮助...我对 VB 很陌生,所以无法编写代码。请帮忙..
我正在使用Microsoft Office 2007和Visual Studio 2010。
单击 Windows 窗体上的按钮后,我想将 DataGridView 的数据保存到 Excel 文件中。
我还想通过单击按钮将 Excel 文件中的数据加载到 DataGridView 中。
请帮助...我对 VB 很陌生,所以无法编写代码。请帮忙..
这是一个相当大的问题,并且有许多解决方案。
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
但是,互联网上确实有大量关于这方面的东西。这只是添加到它
使用OpenXML SDK。你可以在互联网上找到很多例子。例如,MSDN 上有很好的总结。或者看看CodeProject。