반응형

* C# Excel File Print (엑셀 파일 프린트 하기) 예제...

 

메인화면

- 인쇄할 엑셀 파일 추가 하기... 

프로젝트 클릭 -> 마우스 오른쪽 클릭 -> 추가 -> 기존 항목 선택

 

위 그림과 같이 모든 파일 선택 합니다. 기본 Visual C# 파일만 열리게 되어 있는데 모든 파일을 선택 하여 프로젝트에 인쇄할 엑셀 파일을 추가 해 줍니다.

 

예제를 위해 만들어 둔 엑셀 파일을 프로젝트에 추가 해서 위 그림과 같이 출력 디렉터리로 복사 => 항상 복사

로 두면 빌드 시 Print.xls 파일도 같이 따라 오게 됩니다. 혹 참조에 추가된 DLL 파일 또한 출력 디렉터리로 복사를

항상 복사로 해 두시면 빌드 시 해당 DLL 파일도 같이 EXE 파일이 만들어 지는 곳으로 따라 오게 됩니다.

 

 

엑셀 파일 내용

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Excel = Microsoft.Office.Interop.Excel;
using System.IO;

namespace CSharp_ExcelFilePrint
{
    public partial class Form1 : Form
    {
        //빌드 후 EXE 파일이 생성 되는 곳
        string strLocalPath =  Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf('\\'));

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            Excel.Application ExcelApp = null;
            Excel.Workbook wb = null;
            Excel.Worksheet ws = null;

            //빌드 후 EXE 파일이 만들어 지는 곳에 있는 Print.xls 엑셀 파일
            string strExcelFile = strLocalPath + "\\Print.xls";

            //파일이 없다면...
            if (!File.Exists(strExcelFile))
            {
                return;
            }

            try
            {

                ExcelApp = new Excel.Application();
                //해당 엑셀 파일 열기...
                wb = ExcelApp.Workbooks.Open(strExcelFile,
                                              0,
                                              true,
                                              5,
                                              "",
                                              "",
                                              true,
                                              Excel.XlPlatform.xlWindows,
                                              "\t",
                                              false,
                                              false,
                                              0,
                                              true,
                                              1,
                                              0);
                ws = wb.Worksheets["Sheet1"] as Excel.Worksheet;


                //엑셀 시트 인덱스 번호는 0,0 부터 시작 하는 것이 아니라 1,1 A1 부터 시작 함. 0,0 으로 시작하면 오류...
                //시트에 값 쓰기...
                ws.Cells[3, 3] = "12345";    //번호
                ws.Cells[3, 7] = "테스트";   //이름

                ws.Cells[6, 2] = DateTime.Now.ToString("yyyy-MM-dd");  //날짜
                ws.Cells[6, 6] = DateTime.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, Type.Missing, Type.Missing);
                wb = null;
                ExcelApp.Quit();
            }
            catch (Exception ex)
            {
                //객체들 메모리 해제
                ReleaseExcelObject(ws);
                ReleaseExcelObject(wb);
                ReleaseExcelObject(ExcelApp);
                GC.Collect();
            }
            finally
            {
                //객체들 메모리 해제
                ReleaseExcelObject(ws);
                ReleaseExcelObject(wb);
                ReleaseExcelObject(ExcelApp);
               
                GC.Collect();
            }
        }

        private void ReleaseExcelObject(object obj)
        {
            try
            {
                if (obj != null)
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                    obj = null;
                }
            }
            catch (Exception ex)
            {
                obj = null;
                throw ex;
            }
            finally
            {
                GC.Collect();
            }
        }


    }
}

 

* 예제 실행 결과

위 그림 처럼 기본 프린터로 연결됨.

 

Print 내용

 

 

https://kdsoft-zeros.tistory.com/35

 

[C#] Excel File Write & Read 예제...

* 엑셀 파일 쓰고 읽기 예제... 위 그림과 같이 프로젝트에 참조를 추가 해 줍니다. 참조가 추가 되었으면 이제 메인화면을 만들어 봅니다. 소스 구현을 하기에 앞서 미리 엑셀 파일을 열어 D:\통합 문서.xls..

kdsoft-zeros.tistory.com

 

반응형

+ Recent posts