VB.NET으로 대용량 엑셀파일 읽기 (2/3)

2023. 9. 4. 12:39VB.NET/왕초보

지난 강좌에서는 엑셀파일을 여는 방법에 대해서 알아봤다. 지난 강좌를 보시려면 아래 링크를 클릭해서 확인해보자.

 

 

VB.NET으로 대용량 엑셀파일 읽기 (1/3)

VB.NET으로 엑셀파일을 읽는 작업은 생각보다 빈번하게 사용되는 기능중 하나이다. 내용이 아주 단순하지는 않지만, 그렇다고 그리 복잡하지도 않으니 차근차근 알아보도록 하자. 아래 내용은 대

chakhani.tistory.com

이번에는 엑셀파일을 닫는 방법을 먼저 알아보자. 어떤 형식의 파일이든 사용을 위해 열었으면 반드시 닫아주어야 한다. 그렇지 않으면 메모리에 쓰레기가 남아서 재부팅할때까지 무쓸모로 메모리 공간을 차지하고 있을 수 있다.

강좌는 지난번의 클래스 생성에 이어서 작성하도록 하겠다.

(4) 엑셀파일 닫기

열린 엑셀파일을 닫기 위해서는 WorkSheet, WorkBook, Application을 순차적으로 닫아줘야 한다. 아래 CloseFile 함수를 확인해보자.

Public Function CloseFile() As Boolean

    Dim lpRet As Boolean = True

    If Application Is Nothing Then Return lpRet

    Try
        WorkBook.Close(False)
        Application.Quit()
        ReleaseExcelObject(WorkSheet)
        ReleaseExcelObject(WorkBook)
        ReleaseExcelObject(Application)
    Catch ex As Exception
        lpRet = False
    Finally
        WorkSheet = Nothing
        WorkBook = Nothing
        Application = Nothing
    End Try

    Return lpRet

End Function

소스는 모두 엑셀을 닫는다. 닫고, 비워주는 역할이다. 아래 ReleaseExcelObject 프로시저도 함께 살펴보자.

Private Sub ReleaseExcelObject(ByVal obj As Object)
    Try
        If obj IsNot Nothing Then
            Marshal.ReleaseComObject(obj)
            obj = Nothing
        End If
    Catch ex As Exception
        obj = Nothing
        Throw ex
    Finally
        GC.Collect()
    End Try
End Sub

메모리에서 완전히 지워야 깔끔하다. ReleaseComObject로 메모리에서도 완전히 지워주자.

 

이번 강좌에서는 열린 엑셀을 닫는 방법에 대해 알아봤다. 다음번에는 이 엑셀에서 데이터를 가져와서 사용하는 방법에 대해 알아보도록 하자.

반응형