Vb.net 如何将数据从datagridview导出/导入到Excel文件?

Vb.net 如何将数据从datagridview导出/导入到Excel文件?,vb.net,visual-studio-2010,datagrid,Vb.net,Visual Studio 2010,Datagrid,我正在使用Microsoft Office 2007和Visual studio 2010 单击Windows窗体上的按钮后,我想将DataGridView的数据保存到Excel文件中 我还想通过单击按钮将数据从Excel文件加载到DataGridView中 请帮助…我是VB新手,所以无法编写代码。Plsss帮助..这是一个相当大的问题,有很多解决方案 1) 正在编写Excel。。有3种常见的方法可以做到这一点,1)将数据以CSV格式输出,Excel会很高兴地读取它。2) 使用Excel Int

我正在使用Microsoft Office 2007和Visual studio 2010

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

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


请帮助…我是VB新手,所以无法编写代码。Plsss帮助..

这是一个相当大的问题,有很多解决方案

1) 正在编写Excel。。有3种常见的方法可以做到这一点,1)将数据以CSV格式输出,Excel会很高兴地读取它。2) 使用Excel Interop创建工作簿并向其写入工作表。这需要安装Excel,并使用OleDB创建Excel

2) 阅读Excel。。。同样,您可以使用Excel互操作来阅读Excel工作簿,并且需要安装Excel,还可以使用OleDB来阅读Excel文件

还有其他方法,但这些是最常用的方法

总的来说,我会在第一个实例中使用OleDB来解决这个问题,在StackOverflow上有很多关于如何读写Excel的例子

如果您需要访问Excel的所有格式或图表功能,则需要进行互操作。它相对容易使用,而且有很多关于如何使用的例子

编辑:

最简单的是

首先在项目属性下添加对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
但是,互联网上确实有大量的信息。这只是增加了它的使用。你可以在网上找到很多例子。MSDN上有nice。或者看一看。

谢谢:-)您能给我一个简单的代码,使用excel Interop将一行从datagrid导出到excel,这样我就更清楚了