我把vb.net作为后台,生成并下在excel文件,但是有时是好的,有时报错。上次我做的时候是因为一个函数的代码太长了,把一个函数写成几个函数问题就解决了,但是我现在做的东西比以前的文档都大,就是分成几个函数,有时第一次下载就是好的,第二次就挂了,太不稳定了,请问高手是什么原因,请指点一下。谢谢

解决方案 »

  1.   

    本来我做的一个是这样的代码:
    Public Sub GetExcel(ByVal UsersDs As DataSet, ByVal strDisplayStartWeekday As String, ByVal strDisplayEndWeekday As String)
            Dim myRow As DataRow        Dim data_Array As Object        Dim i As Integer
            Dim j As Integer
            Dim strSQLParam() As String
            Dim strSQL As String        Try
                myDB.ConnectDB()            p_oExcel.Visible = False
                p_oExcel.DisplayAlerts = False            p_oBook = p_oExcel.Workbooks.Add
                p_oSheet = p_oBook.Worksheets.Add
                p_oSheet.Name = "Sheet4"            p_oBook.SaveAs(p_strFile)            p_oExcel.Workbooks.Open(p_strFile)
                p_oBook = p_oExcel.ActiveWorkbook            MakeSheet(UsersDs, strDisplayStartWeekday, strDisplayEndWeekday)            p_oExcel.DisplayAlerts = True
                p_oBook.Save()        Catch ex As Exception            Session.Add("DEFAULT_ERROR", ex.Message)
                Response.Redirect("DefaultErrorPage.aspx", True)        Finally
                p_oBook.Close()
                System.Runtime.InteropServices.Marshal.ReleaseComObject(p_oCells)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(p_oSheet)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(p_oBook)
                p_oCells = Nothing
                p_oSheet = Nothing
                p_oBook = Nothing            p_oExcel.Quit()
                System.Runtime.InteropServices.Marshal.ReleaseComObject(p_oExcel)            p_oExcel = Nothing            myDB.CloseDB()
                System.GC.Collect()        End Try    End Sub其中MakeSheet()这个函数,我是有一段代码的,但是如果把那段代码写在这个函数中,程序会报提示错误:Microsoft Excel:Excel.EXE —应用程序错误,"ox6dde20e5"指令引用的"0x00000000"内存,该内存不能为"Read" 。这个错误,打不开。但是又来我把MakeSheet()中代码另建了一个函数后,问题就解决了,很奇怪。但是我现在还要再作一个Excel,但是这个下载文件比前面的大,所以很不稳定,有时候还是会报报提示错误:Microsoft Excel:Excel.EXE —应用程序错误,"ox6dde20e5"指令引用的"0x00000000"内存,该内存不能为"Read" 。如果我现在打开一个excel文件的话,再运行程序,这是程序根本就挂了,郁闷啊~什么原因啊?高手们指导一下,我的MSN是[email protected]
      

  2.   

    你在什么地方创建的Excel.Application?
      

  3.   

    在函数里面,new了一个,但是我现在在自己本地的机子上运行的话,下到第五个文档的话,就报错了会报报提示错误:Microsoft Excel:Excel.EXE —应用程序错误,"ox6dde20e5"指令引用的"0x00000000"内存,该内存不能为"Read" 。这是什么原因呢?