반응형
* VBNET Excel File Print (엑셀 파일 프린트) 예제...
- 인쇄할 엑셀 파일 추가 하기...
(Excel File 추가하는 것은 C# 과 VBNET 이 다를게 없으므로 기존 C# 에 작성된 그림을 가져옴)
프로젝트 클릭 -> 마우스 오른쪽 클릭 -> 추가 -> 기존 항목 선택
위 그림과 같이 모든 파일 선택 합니다. 기본 Visual VB 파일만 열리게 되어 있는데 모든 파일을 선택 하여 프로젝트에 인쇄할 엑셀 파일을 추가 해 줍니다.
예제를 위해 만들어 둔 엑셀 파일을 프로젝트에 추가 해서 위 그림과 같이 출력 디렉터리로 복사 => 항상 복사
로 두면 빌드 시 Print.xls 파일도 같이 따라 오게 됩니다. 혹 참조에 추가된 DLL 파일 또한 출력 디렉터리로 복사를
항상 복사로 해 두시면 빌드 시 해당 DLL 파일도 같이 EXE 파일이 만들어 지는 곳으로 따라 오게 됩니다.
전체 소스 코드
Form1.vb
Imports System.IO
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
'빌드 후 EXE 파일이 생성 되는 곳
Dim strLocalPath As String = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\"))
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
'엑셀 사용을 위한 변수...
Dim ExcelApp As Excel.Application = Nothing
Dim wb As Excel.Workbook = Nothing
Dim ws As Excel.Worksheet = Nothing
Dim strExcelFile = strLocalPath + "\Print.xls"
Try
'해당 엑셀 파일이 존재 하지 않는 다면...
If Not File.Exists(strExcelFile) Then
Return
End If
ExcelApp = New Excel.Application()
'엑셀 파일 오픈...
wb = ExcelApp.Workbooks.Open(strExcelFile)
'첫번째 시트 사용
ws = CType(wb.Worksheets("Sheet1"), Excel.Worksheet)
'col 1 : A 열 부터 시작
ws.Cells(3, 3) = "12345" '번호
ws.Cells(3, 7) = "테스트" '이름
ws.Cells(6, 2) = Date.Now.ToString("yyyy-MM-dd") '날짜
ws.Cells(6, 6) = Date.Now.ToString("HH:mm:ss") '시간
ws.Cells(10, 2) = "항목1"
ws.Cells(11, 2) = "항목2"
ws.Cells(12, 2) = "항목3"
ws.Cells(13, 2) = "항목4"
ws.Cells(14, 2) = "항목5"
'엑셀 내용 프린트 미리보기...
ExcelApp.Visible = True
ExcelApp.Sheets.PrintPreview(True)
'엑셀 파일 닫기...
wb.Close(False, Excel.XlFileFormat.xlWorkbookNormal)
ExcelApp.Quit()
Catch ex As Exception
'객체 메모리 해제...
ReleaseObject(ws)
ReleaseObject(wb)
ReleaseObject(ExcelApp)
GC.Collect()
Finally
ReleaseObject(ws)
ReleaseObject(wb)
ReleaseObject(ExcelApp)
GC.Collect()
End Try
End Sub
Private Shared Sub ReleaseObject(ByVal obj As Object)
Try
If Not obj Is Nothing Then
Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
End If
Catch
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
End Class
*예제 결과
위 그림 처럼 작업 관리자에 EXCEL.EXE 프로세스가 올라가게 되면서 엑셀 파일 프린트가 시작 됩니다.
기본 프린터로 연결됨.
기본 프린터에 해당 엑셀 파일 내용이 프린트 되며, 프린트 후 작업 관리자를 열어서 확인 해 보시면 EXCEL.EXE 프로세
스가 해제 되어 종료 되어 있는 것을 볼 수 있습니다.
https://kdsoft-zeros.tistory.com/36
반응형
'VB.NET Programming' 카테고리의 다른 글
[VBNET] [API] 해당 윈도우 폼(Window Form) 을 찾아서 최상위 윈도우로 포커스(Focus) 맞추기 (0) | 2020.02.11 |
---|---|
[VBNET] 윈도우 폼 (Window Form) 포커스(Focus) 가지 않게 하기 (0) | 2020.02.08 |
[VBNET] [WMI] 현재 실행 중인 프로세스 조회 (Process Search) (0) | 2020.01.31 |
[VBNET] [WMI] 윈도우 시작 프로그램 조회 (Startup Program) (0) | 2020.01.29 |
[VBNET] [API] 인터넷 연결 체크 (internet Connect Check) (0) | 2020.01.22 |