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

GrapeCity Documents API를 사용하여 재무 보고서를 작성하는 방법 > 블로그 & Tips

본문 바로가기

.NET API

블로그 & Tips

GrapeCity Documents API를 사용하여 재무 보고서를 작성하는 방법

페이지 정보

작성자 GrapeCity 작성일 2021-12-31 10:05 조회 3,035회 댓글 1건

본문

특히 재무 보고서처럼 복잡한 문서를 작성하려는 경우 .NET에서 Excel 보고서를 작성하는 것은 까다로운 일이 될 수 있습니다. 모든 필수 수식, 계산 및 차트를 생성하기 위해 C# 코드만 사용했다고 가정하겠습니다. 그것은 결과를 시각화할 수 없기 때문에 많은 시행착오가 있는 매우 번거로운 작업이 될 것입니다.


ClosedXML과 같은 라이브러리가 도움이 될 수 있지만 그것은 하위 수준이고 보고서를 작성하기 위해 코드가 너무 많이 필요합니다.


따라서 대신 Excel 템플릿을 만든 후 코드를 사용하여 데이터를 템플릿에 삽입했으며, 이것이 본 문서의 자습서에서 하게 될 작업입니다. 다행히 GrapeCity의 Documents for Excel .NET 버전에서는 템플릿을 사용하여 Excel 문서를 데이터에 바인딩하고 고급 레이아웃을 포함한 Excel 보고서를 만드는 것이 가능합니다.



새 .NET 5 프로젝트 만들기


이 자습서에서는 간단한 .NET 5 콘솔 응용 프로그램을 사용하여 주식 포트폴리오 보고서를 만듭니다. 이 보고서는 실제 주식 데이터를 5개 주식(AAPL, AMZN, GOOG, FB, MSFT)을 포함한 가상 포트폴리오와 결합합니다. 스프레드시트 번호 및 차트의 생성을 강조하는 다양한 코드 샘플과 스크린샷을 이용하여 재무 보고서용 템플릿을 만들어 보겠습니다.


처음부터 완전히 작동하는 .NET 5 보고서 응용 프로그램을 만들려면 이 자습서에 나오는 단계를 수행하세요. 대신 이 GitHub 리포지토리에서 소스 코드를 다운로드할 수도 있습니다.



시스템 요구 사항

개발 시스템에 다음 소프트웨어가 설치되어 있어야 합니다.



Visual Studio에서 새 프로젝트 만들기

Visual Studio를 열고 새 프로젝트 만들기를 클릭한 다음 콘솔 앱(.NET Core)을 선택합니다.

문서


다음을 클릭하고 프로젝트 이름을 “StocksReport”로 지정합니다

문서


StocksReport 프로젝트 이름을 선택하고 Alt+Enter를 누르거나, 마우스 오른쪽 버튼을 클릭하여 프로젝트 속성을 봅니다. 그런 다음 대상 프레임워크 목록에서 .NET 5를 선택합니다.

문서



주식 포트폴리오 데이터 추가


이 GitHub URL에서 주식 포트폴리오 데이터를 다운로드합니다. 그런 다음 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 추가 / 기존 항목을 선택한 후 조금 전에 다운로드한 portfolios.json 파일을 찾습니다.


솔루션 탐색기에서 portfolios.json 파일을 마우스 오른쪽 버튼으로 클릭하고 빌드 작업 속성을 콘텐츠로, 출력으로 복사 속성을 최신 항목인 경우 복사로 변경합니다.


문서


이제 portfolios.json 파일을 열고 콘텐츠를 확인합니다.

코드

코드


porfolios.json 파일에는 .NET 프로젝트에서 사용할 구조화된 JSON 콘텐츠가 있습니다.

이 데이터를 GrapeCity Document API에서 사용하기 전에 JSON 구조를 다음과 같이 .NET 클래스로 매핑합니다.


문서


먼저 프로젝트에서 새 모델 폴더를 만들고 모델 폴더를 두 번 클릭합니다.

그런 다음 추가 > 새 항목 > 클래스를 클릭하고 이름이 Portfolio.cs 및 SymbolPriceHistory.cs인 클래스 파일 2개를 새로 만듭니다.


문서


이제 이 클래스 선언을 Portfolio.cs 파일에 포함합니다.

 public class Portfolio  
  {  
      public string Name { get; set; }  
      public string Symbol { get; set; }  
      public double LastPrice { get; set; }  
      public double Change { get; set; }  
      public int Shares { get; set; }  
      public double Price { get; set; }  
      public double Cost { get; set; }  
      public double Value { get; set; }  
      public double Gain { get; set; }  
      public List<SymbolPriceHistory> PriceHistory { get; set; }  
  }


또한 이 선언을 SymbolPriceHistory.cs 파일에 추가합니다.

 public class SymbolPriceHistory  
  {  
      public DateTime PriceDate { get; set; }  
      public string PriceMonth { get { return PriceDate.ToString("MMM-yyyy"); } }  
      public string Symbol { get; set; }  
      public double Price { get; set; }  
      public double PriceGrowth { get; set; }  
  }



재무 보고서용 Excel 템플릿 만들기


보고서 생성은 회계, 재무, 인사, 마케팅 등의 비즈니스 부서에서 수행하는 기본적인 작업입니다. 기업은 업데이트된 데이터 집합으로 각종 유형의 Excel 보고서를 정기적으로 생성합니다.


그러나 외부 소스의 데이터를 복사하여 Excel에 붙여넣거나 로드하는 것은 지루하면서 실수하기 쉬운 작업이므로 이때 Excel 템플릿이 유용합니다. 프로그램은 이러한 템플릿을 처리하며 최소의 노력으로 정확한 보고서를 생성할 수 있습니다.


먼저 MS Excel을 열고 빈 통합 문서를 새로 만든 다음 프로젝트의 디렉토리에 “Stocks_Report_Template.xlsx”라는 이름으로 저장합니다.


Stocks_Report_Template.xlsx 파일을 마우스 오른쪽 버튼으로 클릭하고 빌드 작업 속성을 콘텐츠로, 출력으로 복사 속성을 최신 항목인 경우 복사로 변경합니다.


문서



주식 포트폴리오 워크시트 만들기


Microsoft Visual Studio의 솔루션 탐색기에서 Stocks_Report_Template.xlsx 파일을 열고 첫 번째 워크시트 “주식 포트폴리오”의 이름을 변경합니다.


문서


그런 다음 워크시트에서 첫 번째 행의 제목을 생성합니다.

세 번째 행에는 “포트폴리오”라는 이름을 삽입합니다.


문서


이제 보고서 열의 열 헤더에 아래와 같이 텍스트를 추가합니다.

A5회사
B5기호
C5최종 가격
D5변경
E5지분
F5가격
G5비용
H5
I5이득

문서


이제 다음 식을 해당 셀에 추가합니다.

서식
A7{{ds.Name}}-
B7{{ds.Symbol}}-
C7{{ds.LastPrice}}$
D7{{ds.Change}}%
E7{{ds.Shares}}-
F7{{ds.Price}}$
G7{{ds.Cost}}$
H7{{ds.Value}}$
I7{{ds.Gain}}%


중요: 이 값을 워크시트에 복사하는 동안 셀 내의 공백을 제거해야 합니다. 그렇지 않으면 Excel은 공백이 있는 숫자 값과 날짜 값을 연결하고 해당 값을 부적절하게 서식이 지정된 문자열로 취급합니다. 이러한 결과는 해당 셀에 종속된 다른 수식에 영향을 미칠 수 있습니다.


위의 값을 중괄호 쌍(“{{” 및 “}}”)으로 묶어 나타냈습니다. GrapeCity Documents for Excel은 이 구문을 사용하여 워크시트 내의 템플릿 필드를 식별하고 처리하여 최종값을 생성합니다. 또한 위의 필드는 “데이터 필드”라고 알려진 구문에 이어집니다. 따라서 필드는 데이터 집합(ds)의 특정 속성에 직접 매핑됩니다.


데이터 필드를 함수 또는 식과 결합할 수도 있습니다. 예를 들어 {{=Count(ds.Shares)}} 또는 {{=ds.Shares * ds.Price}}와 같은 값으로 다른 셀을 채울 수 있습니다.


문서


이제 모든 주식 비용 합계를 계산하는 수식을 구현합니다.


이 두 셀을 다음과 같이 수정합니다.

서식
F9총비용:-
G9=SUM(G7:G7)$


문서



데이터를 Excel 템플릿에 삽입


이 섹션에서는 외부 소스에서 데이터를 가져와 .NET 5 앱에 로드하고 이전 단계에서 생성한 템플릿에 삽입하는 방법을 설명합니다.


먼저 GrapeCity의 .NET 5 Excel Spreadsheet API를 설치합니다.


StocksReport 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 클릭한 후 찾아보기 탭에서 GrapeCity.Documents.Excel을 찾습니다. 선택한 후 설치를 클릭합니다.


문서


GrapeCity 페이지에 따르면:

“.NET Excel Spreadsheet API 라이브러리는 개발자가 규모에 따라 프로그래밍 방식으로 Excel 문서를 생성 및 조작할 수 있는 프로그래밍 인터페이스입니다. GrapeCity Documents for Excel은 개발자가 데스크톱 응용 프로그램 전반에서 가져오기/내보내기, 보고서 및 템플릿 생성, 스프레드시트 배포 등의 작업을 할 수 있는 솔루션입니다.”


콘솔 응용 프로그램에서 Program.cs 파일을 열고 종속성 네임스페이스를 가져오도록 다음 선언을 포함합니다.


using GrapeCity.Documents.Excel;  
using Newtonsoft.Json;  
using StocksReport.Model;  
using System.Data;  
using System.IO;  
using System.Linq;  
using System.Collections.Generic;



이제 GrapeCity Documents for Excel에서 통합 문서 클래스를 사용하여 통합 문서 개체를 선언 및 초기화하도록 다음 코드를 추가합니다.

Workbook workbook = new Workbook();  


\bin\Debug\net5.0 폴더에서 Stocks_Template.xlsx 템플릿 통합 문서를 로드하도록 다음 코드를 추가합니다.

var templateFile = "Stocks_Report_Template.xlsx";  
workbook.Open(templateFile);  


사용자 정의 개체, 데이터 집합, 데이터 테이블, JSON 변수 등 여러 데이터 소스 유형을 포함한 GrapeCity Documents for Excel을 사용할 수 있습니다.


이 프로젝트는 목록 유형의 사용자 정의 개체를 사용하므로 다음 행을 추가하여 JSON 파일을 .NET 목록으로 역직렬화합니다.

string stocksText = File.ReadAllText("portfolios.json");  
var portfolios = (List<Portfolio>)JsonConvert.DeserializeObject(stocksText, typeof(List<Portfolio>));


이제 데이터 소스를 통합 문서 개체에 추가합니다. 여기서 “ds”는 데이터 소스의 별칭으로, 템플릿 전체에서 {{ds.Symbol}}과 같이 필드를 정의하는 데 사용합니다.

workbook.AddDataSource("ds", portfolios);  


이제 다음 행을 추가하여 템플릿을 처리합니다.

workbook.ProcessTemplate();  


완벽한 Excel 보고서를 디스크에 작성해야 합니다.


GrapeCity Documents API에 의해 생성된 Excel 통합 문서 파일로 저장하도록 다음 행을 포함합니다.

workbook.Save("Stocks_Report.xlsx");


이제 Stocks_Evolution_Template.xlsx 템플릿이 포트폴리오의 사용자 정의 개체에 바인딩되고 Stocks_Report.xlsx 파일을 생성합니다.


이제 콘솔 응용 프로그램을 실행하여 보고서를 생성합니다. 응용 프로그램이 오류 없이 완료되었으면 \bin\Debug\net5.0 폴더에서 Stocks_Report.xlsx 파일을 열어 결과를 확인합니다. 템플릿을 기반으로 하며 데이터 소스로 사용되는 모든 데이터를 표시하는 완전한 보고서입니다.


문서


가한 값이 템플릿의 값처럼 정확히 동일하게 유지되고 있는 것을 확인할 수 있습니다.


그러나 GrapeCity Documents for Excel은 보고서의 모든 필드를 데이터 집합의 실제 데이터로 바꿉니다.


또한 보고서 라인은 시트의 각 행이 원본 데이터 소스의 다른 항목을 나타낼 수 있도록 아래로 확장됩니다. 새 라인을 포함하기 위해 이 확장에 따라 총비용을 나타내는 셀의 세로 위치가 바뀝니다.



회사 주식 내역 워크시트 만들기


추가 템플릿 기능을 탐색하려면 주식 포트폴리오 시트를 마우스 오른쪽 버튼으로 클릭한 후 이동 또는 복사를 선택합니다. 그런 다음 복사본 만들기 체크박스를 선택합니다.


문서


{{ds.Symbol}} 식으로 새 시트의 이름을 변경합니다.

문서


첫 번째 워크시트에서와 마찬가지로 다음의 각 셀을 해당 값으로 채우고 적절한 서식을 적용합니다. 일부는 텍스트이고 다른 일부는 보고서를 생성할 때 응용 프로그램이 해결하는 식입니다.

서식
A3가격 내역 - {{ds.Symbol}}-
A5날짜날짜/시간
B5월-년-
C5가격-
D5가격 성장률(%)-
A7{{ds.PriceHistory.PriceDate}}-
B7{{ds.PriceHistory.PriceMonth}}-
C7{{ds.PriceHistory.Price}}$
D7{{ds.PriceHistory.PriceGrowth}}%


문서


다시 응용 프로그램을 실행하여 새 워크시트를 어떻게 생성하는지 확인합니다.


문서


보이는 대로 응용 프로그램은 1개가 아닌 5개의 워크시트를 새로 생성했습니다. 따라서 워크시트의 이름으로 정의한 {{ds.Symbol}} 식은 데이터를 사용하여 평가됩니다.


데이터 소스는 5개의 기호가 포함된 컬렉션이므로 응용 프로그램은 각 기호에 대해 새로운 워크시트를 하나씩 생성합니다.


식을 워크시트 이름으로 사용하는 것은 하나의 긴 보고서 대신 여러 워크시트에서 데이터를 세분화하고 정리하는 데 특히 유용합니다.


문서



비교 가격 성장 워크시트 만들기


세 번째 템플릿 워크시트를 만들려면 마지막 워크시트 이름을 마우스 오른쪽 버튼으로 클릭하고 이동 또는 복사를 선택하여 이전 단계를 반복합니다.


그런 다음 복사본 만들기 체크박스를 선택합니다.


문서


세 번째 워크시트 “가격 성장”의 이름을 변경합니다.

문서


이제 워크시트 템플릿의 셀을 다음 값 및 서식으로 채웁니다.

서식
A3비교 가격 성장-
A5날짜-
B5월-년-
C5{{ds.Symbol(E=H)}}-
A6{{ds.PriceHistory.PriceDate}}-
B6{{ds.PriceHistory.PriceMonth}}-
C6{{ds.PriceHistory.PriceGrowth}}%


C5 셀의 값 {{ds.Symbol(E=H)}}이 이상합니다. 필드는 기본적으로 세로로 확장되지만, 이 경우에는 GrapeCity 컴포넌트를 가로로 확장하도록 지시합니다(E=H).


문서


앱을 실행하고 생성된 보고서를 열면 각 주식 기호(C5 셀)에 오른쪽으로 확장된 열이 새로 생긴 것을 확인할 수 있습니다.


또한 C5 셀의 식은 자체 복제되며 C6 셀을 가로로 확장합니다.


문서



주식 가격 성장 차트 만들기


GrapeCity Documents for Excel이 템플릿에서 차트를 빠르게 생성하는 과정을 보려면 A5부터 C6까지 셀 범위를 선택합니다.

문서


범위를 선택한 후 리본에서 삽입을 클릭하고 꺾은선형 또는 영역형 차트 삽입 아이콘을 클릭한 후 라인 아이콘을 클릭합니다.

문서


이 작업은 꺾은선형 차트를 생성합니다. 새 그래프를 워크시트의 오른쪽 여백으로 끕니다.

문서


차트 내의 공백을 마우스 오른쪽 버튼으로 클릭한 후 데이터 선택을 클릭합니다.

문서



{{ds.Symbol(E=H)}} 셀이 범례 항목(계열) 상자 안에 들어가도록 해야 합니다.

변경하려면 행/열 전환 버튼을 클릭합니다.


문서

문서


또한 각 가격 날짜 대신 몇 개월의 가격 월을 표시하려면 가로(범주) 축 레이블 상자를 수정해야 합니다. 먼저 오른쪽에 있는 편집 버튼을 클릭합니다.


문서


그런 다음 축 레이블 범위 필드를 =’Price Growth'!$B$6:$B$6으로 변경합니다.


문서

문서


차트 제목을 두 번 클릭하고 제목을 “주식 가격 성장률(%)”로 바꿉니다.

문서


이제 버튼 레이블을 마우스 오른쪽 버튼으로 클릭하고 축 서식을 선택합니다.

문서


레이블 섹션에서 간격 지정20으로, 레이블 위치낮음으로 변경합니다.

문서


이제 차트 옆의 플러스 기호를 클릭하여 차트 요소 창을 엽니다.

범례 옵션을 클릭하고 아래쪽 위치를 선택합니다.

문서


다음으로 Excel 통합 문서를 저장하고 Visual Studio 프로젝트를 다시 실행합니다.

\bin\Debug\net5.0 폴더에서 템플릿이 생성하는 통합 문서를 열고 새 꺾은선형 차트를 선택합니다.

문서


계열을 제거하고 AMZN만 남긴다고 가정하겠습니다.

이 경우에는 AMZN을 웹에서 재무 서비스에 의해 생성되는 AMZN 주식 성과와 비교할 수 있습니다.

같은 기간에 곡선들이 어떻게 일치하는지 확인할 수 있습니다.


문서



다음 단계


데이터 소스에서 주식 정보를 가져와 템플릿 형식의 유연한 Excel 통합 문서에 삽입하는 간단한 .NET 솔루션을 쉽게 만드는 방법을 알아보았습니다. 그 과정에서 수식과 차트가 포함된 완벽한 Excel 기반 주식 포트폴리오 보고서가 생성되는 것을 확인했습니다.


그리고 GrapeCity Documents for Excel .NET Edition(GcExcel.NET)이 어떻게 개발자에게 Microsoft Excel 스프레드시트를 쉽게 조작하기 위한 포괄적인 API를 제공하는지도 경험했습니다.


GcExcel.NET은 Console Application, WinForms, WPF, ASP.NET, ASP.NET Core와 호환됩니다. 이에 따라 필터 테이블 및 필터 피벗 테이블과 같은 Excel 기능을 이용하고, 차트 스파크라인, 조건부 서식, 대시보드 보고서를 추가할 수 있습니다.


작은 설치 공간과 뛰어난 성능을 유지하면서 모든 주요 플랫폼에서 작동하는 개발자용 스프레드시트 솔루션에 대해 알아볼 준비가 되었다면 GrapeCity Documents for Excel JAVA 또는 .NET Edition을 고려해 보세요.




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

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

댓글목록

등록된 댓글이 없습니다.

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

태그1

인기글

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