C#으로 WinForms 앱에서 Excel 스프레드 시트 가져오기 및 내보내기 > 블로그 & Tips

본문 바로가기

Spread.NET

블로그 & Tips

C#으로 WinForms 앱에서 Excel 스프레드 시트 가져오기 및 내보내기

페이지 정보

작성자 GrapeCity 작성일 19-06-25 00:00 조회 212회 댓글 0건

본문

원활한 Windows 데스크탑 애플리케이션을 구축에 관하여 C#은 개발자가 선택하는 언어입니다. 오늘 우리는 C#으로 작성된 Spread.NET 사용의 이점(특히 Spread.NET을 사용하여 Excel 스프레드 시트를 가져오고 내보내는 방법의 중요성)에 대해 살펴 볼 예정입니다.  이 기능은 사용자에게 Excel 스프레드 시트를 가져온 다음 다른 파일 형식으로 시트를 내보낼 수 있는 방법을 제공합니다. 이것은 프로젝트에서 큰 데이터 소스를 참조하거나 프로젝트를 변환할 때 매우 유용합니다. 이 기능은 매우 유용한 기능을 제공할 뿐만 아니라 개발자와 사용자에게 기하급수적인 시간을 절약해줍니다.


인보이스 가져오기 및 내보내기


이 워크 스루에서는 Excel에서 사용할 수 있는 기존 템플릿, 특히 인보이스를 사용할 것입니다. 비즈니스 환경에서 작업할 때는 일반적으로 인보이스를 보내고 받는 것이 일반적입니다. 즉, 비용을 추적하는 데 중요한 역할을 하는 문서입니다. 기존 인보이스를 가져와서 변경과 승인을 위해 보내는 것에 유용할 뿐만 아니라, 인보이스를 PDF로 내보내서 변경/편집 할 수 없도록 할 수도 있습니다.


Visual Studio .NET을 여는 것으로 시작하겠습니다. 그런 다음 파일(File) 메뉴에서 새로 만들기(New)를 선택한 다음 프로젝트를 선택합니다. 새 프로젝트 대화 상자의 설치 영역에서 개발중인 언어 환경에 따라 프로젝트 유형을 선택하십시오. 예를 들어 C#에서 Windows를 선택합니다. 그런 다음 Windows Forms 애플리케이션과 같은 프로젝트 유형을 선택하고 이름 상자(Name Box)에 새 프로젝트의 이름을 입력합니다. 기본 이름은 처음 생성하는 Windows Forms 애플리케이션에서 기본 이름은 WindowsApplication1입니다. 그런 다음 위치 상자(Location Box)에서 위치 경로를 지정된 경로로 그대로 두거나 찾아보기를 클릭하여 경로를 새 디렉토리로 변경합니다. 마지막으로 확인을 클릭합니다.


프로젝트가 솔루션 탐색기에 표시됩니다. 프로젝트에 솔루션 탐색기가 표시되지 않으면 보기 (View)메뉴에서 솔루션 탐색을 선택합니다. 팝업 메뉴에서 이름 바꾸기(Rename)를 선택한 다음 새 양식 이름에 원하는 새 양식 이름을 입력합니다.


이제 Visual Studio에 컨트롤을 추가할 준비가 되었습니다. 솔루션 탐색기에서 폼 이름 Form1을 마우스 오른쪽 단추로 클릭합니다. 도구 상자가 표시되지 않으면 보기 메뉴로 이동하여 도구 상자를 선택합니다. 도구 상자가 표시되면 GrapeCity Spread 카테고리 (또는 Spread를 설치하고 도구 상자 아이콘을 다른 카테고리에 배치 한 경우 다른 카테고리)를 확인합니다.


스프레드 구성 요소가 도구 상자에 나타납니다. 도구 상자에 스프레드 구성 요소가 없으면 도구 상자에서 마우스 오른쪽을 클릭하여 팝업 메뉴에서 "항목 선택"(Choose items)을 선택합니다. 도구 상자 항목 선택 대화 상자에서 .NET Framework 구성 요소 탭을 클릭합니다. 이제 .NET Framework 구성 요소 탭에서 FpSpread 구성 요소 (FarPoint.Win.Spread 네임 스페이스)가 구성 요소 목록에 표시됩니다. 먼저 구성 요소 스프레드 확인란을 선택하고 확인을 클릭합니다. 그런 다음 차트 컨트롤에 대해 FpChart (FarPoint.Win.Chart 네임 스페이스)를 선택합니다.


스프레드 구성 요소가 구성 요소 드롭 다운 목록에 표시됩니다. 구성 요소 목록에 Spread 구성 요소가 표시되지 않으면 찾아보기(Browse)를 클릭하고 Spread Windows Forms 구성 요소의 설치 경로를 찾습니다. 그 다음 FarPoint.Win.Spread.dll을 선택하고 열기를 클릭합니다. 스프레드 구성 요소가 구성 요소 목록에 표시됩니다. 그것을 선택하고 확인을 클릭합니다. 차트 컨트롤로 FarPoint.Win.Chart.dll을 선택합니다.


다음 단계는 스프레드 구성 요소를 프로젝트에 추가하는 것입니다. 프로젝트를 열고, 도구 상자의 GrapeCity Spread(또는 추가한 카테고리)에서 FpSpread 구성 요소를 선택합니다. Windows Forms 페이지에서 초기 구성 요소를 원하는 크기로 사각형을 드래그하거나 페이지를 두 번 클릭하여 스프레드 구성 요소를 그립니다. 스프레드 구성 요소가 나타납니다. 스프레드 디자이너도 기본적으로 나타나는데 디자이너를 닫습니다.


프로젝트는 다음과 같아야 합니다. :



스프레드 컨트롤을 폼 위에 가져옵니다컨트롤이 프로젝트에 추가되었으므로 창에 두 개의 버튼을 추가합니다. 하나는 가져오기를 위한 것이고 다른 하나는 스프레드로 파일을 내보내기 위한 것입니다. 먼저 도구 상자를 연 다음 공통 컨트롤 아래에서 Form.cs [Design]에서 두 개의 버튼을 클릭하고 드래그합니다. 그런 다음 Form.Designer.cs를 열고 다음 코드를 사용하여 버튼의 형식과 레이블이 올바르게 지정되어 있는지 확인합니다.


            // 
            // button1
            // 
            this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.button1.Location = new System.Drawing.Point(477, 431);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(108, 23);
            this.button1.TabIndex = 0;
            this.button1.Text = "Open";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            // 
            // button2
            // 
            this.button2.Anchor =    ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.button2.Location = new System.Drawing.Point(607, 431);
            this.button2.Name = "button2";
            this.button2.Size = new System.Drawing.Size(108, 23);
            this.button2.TabIndex = 1;
            this.button2.Text = "Export to PDF";
            this.button2.UseVisualStyleBackColor = true;
            this.button2.Click += new System.EventHandler(this.button2_Click);
            // 
            // button3
            // 
            this.button3.Location = new System.Drawing.Point(721, 431);
            this.button3.Name = "button3";
            this.button3.Size = new System.Drawing.Size(75, 23);
            this.button3.TabIndex = 2;
            this.button3.Text = "Export to XLSX/XLS";
            this.button3.UseVisualStyleBackColor = true;
            this.button3.Click += new System.EventHandler(this.button3_Click);


폼에 컨트롤이 추가하면 다음과 같이 컨트롤이 표시됩니다.



다음 코드를 작성하여 Form.cs 시트의 각 버튼에 가져오기 및 내보내기 기능을 할당해야 합니다.


            private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Excel 97-2007 Workbook(*.xls)|*.xls|Excel Workbook(*.xlsx)|*.xlsx";
            openFileDialog.FilterIndex = 2;
            openFileDialog.Multiselect = false;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string _fileName = openFileDialog.FileName;
                bool ret = spread.OpenExcel(_fileName);


            }
        }
        SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Pdf file (*.pdf)| *.pdf";
            saveFileDialog.Title = "Save Spread to PDF Format.";
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {

                __printInfo.Centering = Centering.Both;
                _printInfo.ShowColor = true;
                _printInfo.ShowColumnHeader = PrintHeader.Hide;
                _printInfo.ShowRowHeader = PrintHeader.Hide;
                _printInfo.SmartPrintPagesTall = 1;
                _printInfo.SmartPrintPagesWide = 1;
                _printInfo.UseSmartPrint = true;
                _printInfo.PrintToPdf = true;
                _printInfo.PdfWriteMode = PdfWriteMode.New;
                _printInfo.PdfWriteTo = PdfWriteTo.File;
                _printInfo.PdfFileName = saveFileDialog.FileName;
                _printInfo.PrintType = PrintType.All;
                spread.Sheets[0].PrintInfo = _printInfo;
                spread.PrintSheet(0);


                MessageBox.Show("Sheet exported as PDF ");
            }
        }
            private void button3_Click(object sender, EventArgs e)
        {
            SaveFileDialog _saveFileDialog = new SaveFileDialog();
            _saveFileDialog.Filter = "Excel 97-2007 Workbook(*.xls)|*.xls|Excel Workbook(*.xlsx)|*.xlsx";
            _saveFileDialog.FilterIndex = -1;
            if (_saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                string _fileName = _saveFileDialog.FileName;
                spread.SaveExcel(_fileName, (_fileName.ToUpper().EndsWith("XLSX") ? ExcelSaveFlags.UseOOXMLFormat : ExcelSaveFlags.NoFlagsSet));
                MessageBox.Show("Sheet exported as XLSX/XLS ");
            }
        }


다음으로, 스프레드 구성 요소를 초기화하기 전에 PrintInfo 클래스를 초기화하고 PDF로 내보낼 수 있는 폼 내에 새 PrintInfo 클래스를 작성합니다. 다음 코드를 작성하여 이 기능을 구현할 수 있습니다.


public partial class Form1 : Form
    {
        private PrintInfo _printInfo;

        public Form1()
        {
            _printInfo = new PrintInfo();
            InitializeComponent();
            Name = "Introduction";
            SetupSpreadSheet();
        }


각 버튼의 기능을 할당한 후, 컨트롤에서 열기/내보내기 버튼을 클릭하여 해당 버튼이 예상대로 작동하는지 확인합니다.


가져오기 스크린 샷입니다.


Excel 스프레드 시트 가져 오기


XLSX / XLS 내보내기 :


XLSX / XLS 수출


 

PDF 내보내기 :


PDF 내보내기


 

그런 다음 창의 형식을 설정합니다.


            this.spread.AccessibleDescription = "Book1";
            this.spread.BackColor = System.Drawing.SystemColors.Control;
            this.spread.Location = new System.Drawing.Point(12, 12);
            this.spread.Name = "spread";
            this.spread.RightToLeft = System.Windows.Forms.RightToLeft.No;
            this.spread.Size = new System.Drawing.Size(1044, 403);
            this.spread.TabIndex = 0;


마지막으로 Excel에서 제공하는 표준 인보이스 템플릿을 사용할 예정이므로 템플릿을 컴퓨터에 저장한 위치에서 자동으로 가져와 Form_Load에 추가할 수도 있습니다.


private void Form1_Load(object sender, EventArgs e)
        {
            spread.OpenExcel("C: \\Users\\christopher.good\\Desktop\\SamplesB\\AcmeProduce.xlsx");
        }


이제 애플리케이션을 빌드하고 실행할 때 다음 보고서가 표시됩니다.



그런 다음 인보이스를 마음껏 커스터마이징한 다음 PDF, .xlsx 또는 .xls로 자유롭게 내보내면 됩니다!


이는 Winforms 용 Spread.NET을 사용하여 프로젝트 기능을 향상시킬 수 있는 많은 방법중 하나입니다. 즐거운 코딩을 따라 주셔서 감사합니다! 여기에서 전체 프로젝트를 다운로드할 수 있습니다 .

  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그

그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@grapecity.com | 전화 : 1670-0583 | 경기도 안양시 동안구 시민대로 230, B-703(관양동, 아크로타워) 그레이프시티(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 Copyright ⓒ 2021 GrapeCity inc.