-1

我正在使用Microsoft Office 2007Visual Studio 2010

单击 Windows 窗体上的按钮后,我想将 DataGridView 的数据保存到 Excel 文件中。

我还想通过单击按钮将 Excel 文件中的数据加载到 DataGridView 中。

请帮助...我对 VB 很陌生,所以无法编写代码。请帮忙..

4

2 回答 2

2

这是一个相当大的问题,并且有许多解决方案。

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

但是,互联网上确实有大量关于这方面的东西。这只是添加到它

于 2013-05-02T10:55:35.237 回答
0

使用OpenXML SDK。你可以在互联网上找到很多例子。例如,MSDN 上有很好的总结。或者看看CodeProject

于 2013-05-02T11:49:03.753 回答