【问题标题】:How to export/import data from/to datagridview to a Excel file?如何从/向datagridview导出/导入数据到Excel文件?
【发布时间】:2013-04-26 12:02:02
【问题描述】:

我正在使用 Microsoft Office 2007Visual Studio 2010

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

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

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

【问题讨论】:

    标签: vb.net visual-studio-2010 datagrid


    【解决方案1】:

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

    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
    

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

    【讨论】:

    • 谢谢 :-) 你能给我一个简单的代码来使用 Excel 互操作从数据网格导出一行到 excel,这样我会更清楚
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2013-09-11
      • 2012-02-22
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多