【问题标题】:Exporting data from DataGridView as Excel table using VB.NET使用 VB.NET 将 DataGridView 中的数据导出为 Excel 表
【发布时间】:2017-07-12 10:43:39
【问题描述】:

最近我一直在做一个项目,旨在让用户将DataGridView中完成的数据作为Excel表格发送,首先表格必须保存在用户的PC中。我正在使用下面显示的代码:

Private Sub Bt2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt2.Click
    Dim xlApp As Excel.Application
    Dim xlWorkBook As Excel.Workbook
    Dim xlWorkSheet As Excel.Worksheet
    Dim misValue As Object = System.Reflection.Missing.Value

    Dim i As Int16, j As Int16

    xlApp = New Excel.Application
    xlWorkBook = xlApp.Workbooks.Add(misValue)
    xlWorkSheet = xlWorkBook.Sheets("sheet1")


    For i = 0 To dg.RowCount - 2
        For j = 0 To dg.ColumnCount - 1
            xlWorkSheet.Cells(i + 1, j + 1) = dg(j, i).Value.ToString()
        Next
    Next

    xlWorkBook.SaveAs("C:\Users\Abstract\Desktop\file1.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
         Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
    xlWorkBook.Close(True, misValue, misValue)
    xlApp.Quit()

    releaseObject(xlWorkSheet)
    releaseObject(xlWorkBook)
    releaseObject(xlApp)

    MessageBox.Show("Over")
End Sub
Private Sub releaseObject(ByVal obj As Object)
    Try
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
        obj = Nothing
    Catch ex As Exception
        obj = Nothing
        MessageBox.Show("Exception Occured while releasing object " + ex.ToString())
    Finally
        GC.Collect()
    End Try
End Sub

用户单击按钮将他的 DataGrid 保存为 Excel 表格。但是,在这样做之后,我得到了一个异常(在第一行,我将 xlApp 设置为 Excel 应用程序),其中包含以下文本:

COM Exception Ocurred
Exception thrown: 'System.Runtime.InteropServices.COMException' in trimitere_excel.exe
Additional information: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

我已经搜索了将近 2 天来克服这个问题。如果您对我应该做什么有任何想法,我将非常感谢任何可以让我摆脱困境的建议! 祝你今天过得愉快! :)

【问题讨论】:

    标签: excel vb.net datagridview export runtime-error


    【解决方案1】:

    也许这会有所帮助:

    Imports Excel = Microsoft.Office.Interop.Excel
    Imports Microsoft.Office
    Imports Microsoft.Office.Interop
    
    
    Private Sub Bt2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt2.Click
    
    Dim pathExcel As String = "C:\Users\Abstract\Desktop\file1.xls"
    Dim xlApp As Excel.Application = New Excel.Application
    Dim misValue As Object = System.Reflection.Missing.Value
    Dim xlWorkBook As Excel.Workbook
    xlWorkBook = xlApp.Workbooks.Add(misValue)
    Dim xlWorksheet As Excel.Worksheet = xlWorkBook.Sheets("sheet1")
    
    For i = 0 To dg.RowCount - 2
        For j = 0 To dg.ColumnCount - 1
            xlWorkSheet.Cells(i + 1, j + 1) = dg(j, i).Value.ToString()
        Next
    Next
    
    xlWorkBookSum.SaveAs(pathExcel)
    xlWorkBookSum.Close()
    xlApp.Quit()
    
    releaseObject(xlWorkSheet)
    releaseObject(xlWorkBook)
    releaseObject(xlApp)
    
    MessageBox.Show("Over")
    
    End Sub
    

    【讨论】:

    • 我之前尝试过,但没有成功(忘记在代码示例中粘贴导入,我的错)
    • 能否告诉我您是否在项目中添加了对 Microsoft Excel 对象库的引用?
    • 你的意思是 Microsoft.Office.Interop.Excel 吗?
    • 我的意思是this教程的第一步
    • 我没有,但我过会试试看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2010-12-21
    • 2023-03-21
    相关资源
    最近更新 更多