C# 및 VB.NET Windows Forms에서 Excel 스프레드시트를 가져오기 및 내보내기 방법
페이지 정보
작성자 GrapeCity 작성일 2021-08-18 10:44 조회 2,637회 댓글 0건본문
첨부파일
관련링크
이 게시물에서는 .NET 스프레드시트인 을 사용하여 .NET Windows Forms 응용 프로그램에서 직접 Microsoft Excel XLSX, XLSM 스프레드시트를 가져오고 내보내는 방법을 설명합니다.
실행 중인 응용프로그램 내에서 코드 한 줄만으로 스프레드시트 인스턴스를 편집하기 위해 런타임에 Spread Designer 도구를 사용합니다. 최종적으로 분할 창을 사용하여 FpSpread 스프레드시트 컨트롤과 NameBox 및 FormulaTextBox 컨트롤을 통합하는 간단한 프론트 엔드 사용자 인터페이스를 생성하고 C#, VB에서 파일 - 열기, 파일 - 저장 및 파일 - 디자인명령을 처리하는 메뉴 항목을 구현하는 방법을 컨트롤합니다.
이 단계는 다음이 필요합니다.
.NET 4.5.2 이상 WinForms 개발자 도구가 포함된 Microsoft Visual Studio 2019
Windows Forms용 Spread.NET 14(평가판 또는 라이선스). Spread.NET 14 Windows Forms의 30일 무료 평가판을 에서 받으세요.
1단계: 프로젝트 만들기
프로젝트를 필터링할 C#, Windows 및 Desktop을 선택하여 Visual Studio 2019에서 새 프로젝트를 만든 다음 C# 또는 VB Windows Form 중 하나를 선택하세요.
2단계: 프로젝트 구성
프로젝트 이름에 Spread.NET_GettingStarted를 입력하고 하단의 프레임워크 대상이 .NET Framework 4.5.2(지원되는 최소 프레임워크 버전) 이상인지 확인합니다.
3단계: 파일 메뉴 만들기
MenuStrip 컨트롤을 폼에 끌어다 놓고 아래에 파일 - 열기, 파일 - 저장, 파일 - 다른 이름으로 저장, 파일 - 디자인, 파일 - 종료에 대한 파일 메뉴 및 메뉴 항목을 생성합니다.
처음에는 파일 - 저장 메뉴 항목을 사용하지 않도록 설정해야 하며 메뉴 구분 기호와 바로 가기 키는 선택 사항이지만 권장됩니다. 해당 메뉴 항목에 대한 코드는 추후 단계에서 추가하겠습니다.
4단계: SplitContainer1 만들기
기본 스프레드시트 컨트롤 및 수식 모음 사용자 인터페이스에 대한 분할 컨테이너를 만들려면 도구 상자(컨테이너 아래)에서 SplitContainer 컨트롤을 두 번 클릭하세요.
5단계: SplitContainer1 구성
속성 그리드를 사용하여 SplitContainer1.Orientation을 Vertical에서 Horizontal로 변경하고 Panel1MinSize를 21로 변경한 다음 위와 같이 상단 페이지의 크기를 최소 크기로 조정합니다.
스프레드시트는 하단 창에 있고 수식 입력줄 인터페이스는 상단 창에 있으며 스플리터는 새 줄로 줄 바꿈 되는 긴 수식을 표시하기 위한 FormulaTextBox 컨트롤의 높이를 결정합니다.
6단계: SplitContainer2 만들기
도구 상자를 사용하여 SplitContainer의 다른 인스턴스를 SplitContainer1의 상단 창(Panel1)으로 끌어다 놓아서 위와 같이 상단 창 내에 SplitContainer2를 만드십시오.
이 새 SplitContainer에는 NameBox와 FormulaTextBox 컨트롤이 포함되며 사용자가 폼 너비에서 해당 컨트롤의 상대적 너비 크기를 조정할 수 있습니다.
7단계: FpSpread 만들기
도구 상자를 사용하여 FpSpread 인스턴스를 SplitContainer1의 하단 창(Panel2)로 끌어다 놓습니다.
컨트롤을 생성할 때(기본 동작) Spred Designer 도구가 열릴 수 있습니다. 지금 Spred Designer가 나타나면 닫으십시오.
컨트롤의 스마트 태그를 사용하여 부모 컨테이너에 도킹을 클릭하여 도킹 속성을 채우기로 설정합니다.
8단계: 네임박스 만들기
도구 상자를 사용하여 네임박스의 인스턴스를 SplitContainer1의 상단 창(Panel1) 내 SplitContainer2의 왼쪽(Panel1)으로 끌어다 놓습니다.
그 후 속성 그리드를 사용하여 도킹 속성을 채우기로 설정하고, 컨트롤의 스마트 태그를 열어 FpSpread 컨트롤에 네임박스를 연결합니다.
9단계: FormulaTextBox 만들기
먼저 Panel 컨트롤을 상단 창 Panel1에 있는 SplitContainer2 오른쪽의 Panel2로 끌어다 놓습니다. SplitContainer1, Property Grid를 사용하여 Dock 속성을 Fill로, 그리고 BorderStyle을 고정 싱글로 설정합니다.
FormulaTextBox를 해당 Panel 컨트롤에 끌어다 놓고 속성 표를 사용하여 Dock 속성을 Fill로 설정합니다.
BorderStyle을 None으로 지정한 다음 스마트 태그를 사용하여 FormulaTextBox를 FpSpread에 연결합니다.
10단계: FpSpreadDesigner 컴포넌트 만들기
도구 상자에서 FpSpreadDesigner 컴포넌트를 폼으로 끌어다 놓아 SheetView와 MenuStrip 인스턴스 옆의 컴포넌트 트레이에 인스턴스를 만듭니다.
11단계: 파일 메뉴 항목 이벤트 처리기 만들기
파일 메뉴의 각 메뉴 항목에 대해 VB 또는 C# 코드에서 생성된 관련 메뉴 처리기가 있을 때까지 디자인 보기에서 해당 메뉴 항목을 두 번 클릭합니다.
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 도구를 표시하고 변경한 다음 변경 사항을 폼의 스프레드시트 인스턴스에 다시 적용합니다.
마지막으로 파일 - 종료 코드가 파일을 저장할지 묻는 메시지를 표시한 다음 닫기 메서드를 사용하여 폼을 닫습니다.
빌드하고 실행할 준비가 되었습니다!
파일 - 디자인 메뉴를 사용하면 위와 같이 런타임에 Spread Designer 도구가 열리고 폼에서 실행 중인 스프레드시트 인스턴스에 변경 내용을 다시 적용할 수 있습니다.
다른 문서 시리즈에서는 에 대해 설명합니다.
|
지금 바로 Spread.NET을 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.