! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

C# 및 VB.NET Windows Forms에서 Excel 스프레드시트를 가져오기 및 내보내기 방법 > 블로그 & Tips

본문 바로가기

Spread.NET

블로그 & Tips

C# 및 VB.NET Windows Forms에서 Excel 스프레드시트를 가져오기 및 내보내기 방법

페이지 정보

작성자 GrapeCity 작성일 2021-08-18 10:44 조회 2,637회 댓글 0건

본문

첨부파일

이 게시물에서는 .NET 스프레드시트인 Spread.NET을 사용하여 .NET Windows Forms 응용 프로그램에서 직접 Microsoft Excel XLSX, XLSM 스프레드시트를 가져오고 내보내는 방법을 설명합니다. 


실행 중인 응용프로그램 내에서 코드 한 줄만으로 스프레드시트 인스턴스를 편집하기 위해 런타임에 Spread Designer 도구를 사용합니다. 최종적으로 분할 창을 사용하여 FpSpread 스프레드시트 컨트롤과 NameBoxFormulaTextBox 컨트롤을 통합하는 간단한 프론트 엔드 사용자 인터페이스를 생성하고 C#, VB에서 파일 - 열기, 파일 - 저장파일 - 디자인명령을 처리하는 메뉴 항목을 구현하는 방법을 컨트롤합니다.


이 단계는 다음이 필요합니다.

  • .NET 4.5.2 이상 WinForms 개발자 도구가 포함된 Microsoft Visual Studio 2019

  • Windows Forms용 Spread.NET 14(평가판 또는 라이선스). Spread.NET 14 Windows Forms의 30일 무료 평가판을 여기에서 받으세요.


1단계: 프로젝트 만들기


img


프로젝트를 필터링할 C#, WindowsDesktop을 선택하여 Visual Studio 2019에서 새 프로젝트를 만든 다음 C# 또는 VB Windows Form 중 하나를 선택하세요.


2단계: 프로젝트 구성


img


프로젝트 이름Spread.NET_GettingStarted를 입력하고 하단의 프레임워크 대상이 .NET Framework 4.5.2(지원되는 최소 프레임워크 버전) 이상인지 확인합니다.


3단계: 파일 메뉴 만들기


MenuStrip 컨트롤을 폼에 끌어다 놓고 아래에 파일 - 열기, 파일 - 저장, 파일 - 다른 이름으로 저장, 파일 - 디자인, 파일 - 종료에 대한 파일 메뉴 및 메뉴 항목을 생성합니다.

img


처음에는 파일 - 저장 메뉴 항목을 사용하지 않도록 설정해야 하며 메뉴 구분 기호와 바로 가기 키는 선택 사항이지만 권장됩니다. 해당 메뉴 항목에 대한 코드는 추후 단계에서 추가하겠습니다.


4단계: SplitContainer1 만들기


img

기본 스프레드시트 컨트롤 및 수식 모음 사용자 인터페이스에 대한 분할 컨테이너를 만들려면 도구 상자(컨테이너 아래)에서 SplitContainer 컨트롤을 두 번 클릭하세요.


5단계: SplitContainer1 구성


img


속성 그리드를 사용하여 SplitContainer1.OrientationVertical에서 Horizontal로 변경하고 Panel1MinSize21로 변경한 다음 위와 같이 상단 페이지의 크기를 최소 크기로 조정합니다.


스프레드시트는 하단 창에 있고 수식 입력줄 인터페이스는 상단 창에 있으며 스플리터는 새 줄로 줄 바꿈 되는 긴 수식을 표시하기 위한 FormulaTextBox 컨트롤의 높이를 결정합니다.


6단계: SplitContainer2 만들기


img


도구 상자를 사용하여 SplitContainer의 다른 인스턴스를 SplitContainer1의 상단 창(Panel1)으로 끌어다 놓아서 위와 같이 상단 창 내에 SplitContainer2를 만드십시오.


이 새 SplitContainer에는 NameBoxFormulaTextBox 컨트롤이 포함되며 사용자가 폼 너비에서 해당 컨트롤의 상대적 너비 크기를 조정할 수 있습니다.


7단계: FpSpread 만들기

img


도구 상자를 사용하여 FpSpread 인스턴스를 SplitContainer1의 하단 창(Panel2)로 끌어다 놓습니다.

컨트롤을 생성할 때(기본 동작) Spred Designer 도구가 열릴 수 있습니다. 지금 Spred Designer가 나타나면 닫으십시오.  

컨트롤의 스마트 태그를 사용하여 부모 컨테이너에 도킹을 클릭하여 도킹 속성을 채우기로 설정합니다. 


8단계: 네임박스 만들기


img


도구 상자를 사용하여 네임박스의 인스턴스를 SplitContainer1의 상단 창(Panel1) 내 SplitContainer2의 왼쪽(Panel1)으로 끌어다 놓습니다.

그 후 속성 그리드를 사용하여 도킹 속성을 채우기로 설정하고, 컨트롤의 스마트 태그를 열어 FpSpread 컨트롤에 네임박스를 연결합니다.


img


9단계: FormulaTextBox 만들기


먼저 Panel 컨트롤을 상단 창 Panel1에 있는 SplitContainer2 오른쪽의 Panel2로 끌어다 놓습니다. SplitContainer1, Property Grid를 사용하여 Dock 속성을 Fill로, 그리고 BorderStyle고정 싱글로 설정합니다.


img


FormulaTextBox를 해당 Panel 컨트롤에 끌어다 놓고 속성 표를 사용하여 Dock 속성을 Fill로 설정합니다.

BorderStyleNone으로 지정한 다음 스마트 태그를 사용하여 FormulaTextBoxFpSpread에 연결합니다.


img


10단계: FpSpreadDesigner 컴포넌트 만들기


img


도구 상자에서 FpSpreadDesigner 컴포넌트를 폼으로 끌어다 놓아 SheetViewMenuStrip 인스턴스 옆의 컴포넌트 트레이에 인스턴스를 만듭니다.


11단계: 파일 메뉴 항목 이벤트 처리기 만들기


img


파일 메뉴의 각 메뉴 항목에 대해 VB 또는 C# 코드에서 생성된 관련 메뉴 처리기가 있을 때까지 디자인 보기에서 해당 메뉴 항목을 두 번 클릭합니다.


img


12단계: 이벤트 처리기 코드 추가


다음 코드를 복사하여 이벤트를 구현합니다.


[C#]

private string mFileName = null;
​
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
  OpenFileDialog ofd = new OpenFileDialog();
  ofd.Filter = "Excel Spreadsheet (*.XLSX;*.XLSM)|*.XLSX;*.XLSM";
  ofd.FilterIndex = 0;
  if (ofd.ShowDialog() == DialogResult.OK)
  {
      mFileName = ofd.FileName;
      fpSpread1.OpenExcel(mFileName);
      saveToolStripMenuItem.Enabled = true;
  }
}
​
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
  fpSpread1.SaveExcel(mFileName);
}
​
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
  SaveFileDialog sfd = new SaveFileDialog();
  sfd.Filter = "Excel Spreadsheet (*.XLSX;*.XLSM)|*.XLSX;*.XLSM";
  sfd.FilterIndex = 0;
  sfd.FileName = mFileName;
  if (sfd.ShowDialog() == DialogResult.OK)
  {
      mFileName = sfd.FileName;
      fpSpread1.SaveExcel(mFileName);
      saveToolStripMenuItem.Enabled = true;
  }
}
​
private void designToolStripMenuItem_Click(object sender, EventArgs e)
{
  fpSpreadDesigner1.ShowDialog(fpSpread1);
}
​
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
  DialogResult ret = MessageBox.Show("Do you want to save this file before closing?", "Save Spreadsheet", MessageBoxButtons.YesNoCancel);
  if (ret == DialogResult.Cancel)
      return;
  else if (ret == DialogResult.Yes)
      saveToolStripMenuItem_Click(null, EventArgs.Empty);
  Close();
}


[VB]

Private mFileName As String = Nothing
​
Private Sub OpenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OpenToolStripMenuItem.Click
  Dim ofd As New OpenFileDialog
  ofd.Filter = "Excel Spreadsheet (*.XLSX;*.XLSM)|*.XLSX;*.XLSM"
  ofd.FilterIndex = 0
  If ofd.ShowDialog() = DialogResult.OK Then
      mFileName = ofd.FileName
      FpSpread1.OpenExcel(mFileName)
      SaveToolStripMenuItem.Enabled = True
  End If
End Sub
​
​
Private Sub SaveToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveToolStripMenuItem.Click
  FpSpread1.SaveExcel(mFileName)
End Sub
​
Private Sub SaveAsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveAsToolStripMenuItem.Click
  Dim sfd As SaveFileDialog = New SaveFileDialog()
  sfd.Filter = "Excel Spreadsheet (*.XLSX;*.XLSM)|*.XLSX;*.XLSM"
  sfd.FilterIndex = 0
  sfd.FileName = mFileName
  If sfd.ShowDialog() = DialogResult.OK Then
      mFileName = sfd.FileName
      FpSpread1.SaveExcel(mFileName)
      SaveToolStripMenuItem.Enabled = True
  End If
End Sub
​
Private Sub DesignToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DesignToolStripMenuItem.Click
  FpSpreadDesigner1.ShowDialog(FpSpread1)
End Sub
​
Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click
  Dim ret As DialogResult = MessageBox.Show("Do you want to save this file before closing?", "Closing", MessageBoxButtons.YesNoCancel)
  If ret = DialogResult.Cancel Then
      Return
  ElseIf ret = DialogResult.Yes Then
      SaveToolStripMenuItem_Click(Nothing, EventArgs.Empty)
  End If
  Close()
End Sub


파일 - 열기 코드는 OpenFileDialog를 사용하여 스프레드시트 파일을 찾은 다음 FpSpread.OpenExcel 메서드를 사용하여 선택한 파일을 엽니다.


파일 - 저장 코드는 FpSpread.SaveExcel을 사용하여 스프레드시트를 저장하고 파일 - 다른 이름으로 저장 코드는 SaveFileDialog를 사용합니다.


사용자가 파일을 다른 위치에 저장하거나 다른 이름을 사용하도록 허용합니다.


파일 - 디자인 코드는 FpSpreadDesigner.ShowDialog 메서드를 사용하여 런타임에 Spread Designer 도구를 표시하고 변경한 다음 변경 사항을 폼의 스프레드시트 인스턴스에 다시 적용합니다.


마지막으로 파일 - 종료 코드가 파일을 저장할지 묻는 메시지를 표시한 다음 닫기 메서드를 사용하여 폼을 닫습니다.


빌드하고 실행할 준비가 되었습니다!


img


프로젝트를 빌드하고 실행할 준비가 되었습니다. 파일 - 디자인 메뉴를 사용하면 위와 같이 런타임에 Spread Designer 도구가 열리고 폼에서 실행 중인 스프레드시트 인스턴스에 변경 내용을 다시 적용할 수 있습니다.


다른 문서 시리즈에서는 C# 및 WPF를 사용하여 Excel 스프레드시트를 가져오고 내보내는 방법에 대해 설명합니다.


C# 샘플 다운로드 | VB 샘플 다운로드


지금 바로 Spread.NET을 다운로드하여 직접 테스트해보세요!

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

더보기
  • 인기 게시물이 없습니다.
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.