향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성 > 블로그 & Tips

본문 바로가기

.NET Core API

블로그 & Tips

향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성

페이지 정보

작성자 GrapeCity 작성일 20-10-14 15:18 조회 40회 댓글 0건

본문

이전의 GcExcel .NET Core API v3 릴리스에서 Excel 템플릿에 대한 지원을 도입한 바 있습니다. 개발자는 이 지원으로 템플릿 필드를 데이터베이스에 매핑하고 동적 Excel 보고서를 생성할 수 있었습니다. v3.1 릴리스의 GcExcel은 여기서 한 걸음 더 나아가 차트, 이미지, 조건부 서식 등의 기능을 Excel 템플릿에 추가하였습니다.


GcExcel v3.1 릴리스에 대해 자세히 알아보십시오.


향상된 Excel 템플릿

개발자는 이제 최신 GcExcel 릴리즈에서 최소한의 프로그래밍으로 전문가다운 Excel 보고서를 디자인할 수 있게 되었습니다. 차트, 이미지, 조건부 서식과 같은 기능을 Excel 템플릿에 추가했으므로 GcExcel에서 이러한 기능의 보고서를 만들 수 있습니다.

새로 추가된 이 컴포넌트를 사용하여 시각적으로 더 매력적일 뿐 아니라 더 이해하기 쉬운 보고서를 만들어 보십시오.

일반적인 비즈니스 시나리오인 자동차 매매업체의 카탈로그 생성 과정을 통해 Excel 템플릿에 이러한 기능을 포함하는 방법을 알아보겠습니다.


향상된 Excel 템플릿으로 동적 보고서 생성


새로 문을 연 자동차 매장에서 보유 차종을 정리한 카탈로그를 만들고자 합니다. 보유 차량 목록에 더하여 차량의 특성, 기술적 세부 정보, 가격 동향도 이 카탈로그에 포함하려고 합니다.


이러한 상황에서는 GcExcel의 향상된 템플릿 기능이 유용합니다. 앞서 나열한 새로운 컴포넌트 기능을 사용해 Excel 템플릿을 디자인하고, 이 템플릿에 .Net Core 응용 프로그램의 데이터를 바인딩하고, 이렇게 바인딩된 템플릿을 처리하여 자동차 카탈로그를 생성해 보십시오.


향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성


Excel에서 카탈로그를 생성하려면 필요한 Excel 템플릿을 정의해야 합니다. 이 문서에서는 향상된 Excel 템플릿 기능만 집중적으로 다루고 GcExcel로 Excel 템플릿을 만드는 방법은 설명하지 않겠습니다. 여기에서 GcExcel을 사용해 Excel 템플릿을 시작할 수 있습니다.


향상된 Excel 템플릿 기능 구현


Excel 템플릿이 제대로 디자인되었으면 그 템플릿을 토대로 Excel 보고서를 빌드합니다. 그러면 사용자 친화적이고 사용하기 쉬운 최종 Excel 보고서가 만들어집니다. 이제 동적 자동차 카탈로그를 생성하는 데 사용할 수 있는 Excel 템플릿의 유형을 알아보겠습니다.


GcExcel을 사용해 Excel 템플릿을 만드는 방법과 그 구문을 이미 알고 계시다고 가정하고, 향상된 Excel 템플릿 기능으로 넘어가겠습니다. 다음 주제에서는 데이터 필드를 템플릿 셀에 매핑하도록 정의된 Excel 템플릿을 다룹니다.


여기에서 자동차 카탈로그 Excel 템플릿을 다운로드하십시오.


템플릿 차트


차트는 전문 보고서에서 데이터 시각화를 위해 가장 많이 사용되는 잘 알려진 수단 중 하나입니다. 이제 이 기능으로 Excel 템플릿 파일에 차트를 정의하고, 차트에 데이터를 바인딩하고, GcExcel이 런타임에 차트를 생성하도록 할 수 있습니다.

향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성


Excel 템플릿 파일의 차트를 바인딩하기 위해 GcExcel은 템플릿을 감지하여 Excel 보고서에서 바인딩된 차트를 생성합니다. 또한 GcExcel 사용자는 처리 중에 템플릿 셀에서 차트 계열 데이터를 지정할 수 있습니다. 차트를 템플릿 셀에 바인딩하면 데이터가 변경될 때마다 최종 보고서의 차트가 항상 업데이트되므로 템플릿 처리에 상당한 이점이 있습니다. 또한 개발자는 GcExcel에서 데이터와 동일한 워크시트에 템플릿 차트를 포함할지 여부를 선택할 수 있습니다.


전년도 판매 동향을 브랜드별로 제시하기 위해 자동차 카탈로그 템플릿에 차트를 삽입해 보겠습니다. 차트를 추가하려면 Excel 메뉴에서 '삽입(Insert)'을 선택합니다. '차트(chart)' 그룹에서 '2차원 세로 막대형 차트(2-D column chart)'를 선택합니다. 시트에 차트가 나타나면 차트를 마우스 오른쪽 버튼으로 클릭하고 '데이터 선택…(Select Data…)' 옵션을 선택하고 '추가(Add)' 버튼을 클릭하여 계열을 추가함으로써 차트 계열을 지정합니다. 각 자동차 브랜드의 총 판매액을 표시해야 하므로 '계열 이름(Series name)'에 A15:O15를 설정하고 '계열 값(Series value)'에 C16을 설정합니다. 이제 '축 레이블 범위'를 A16: B16으로 설정하여 축 레이블을 지정합니다. 축 레이블을 이렇게 설정하면 가로 축의 레이블로 TotalSales가 표시됩니다.


위에서 정의한 최종 템플릿 차트는 다음과 같은 모양이 됩니다.

향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성

향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성


템플릿의 이미지 지원


이미지는 사용자의 시선을 사로잡을 뿐 아니라 제품 및 고객 데이터베이스 등 다양한 데이터 소스에서 레코드의 필수불가결한 부분인 기본 정보를 제공하기도 합니다. GcExcel 최신 릴리스에서는 Excel 보고서의 이미지를 지원한다는 소식을 기쁜 마음으로 알려 드립니다.


이제 다시 자동차 카탈로그의 예로 돌아가겠습니다. 각 자동차 모델의 이미지를 표시하기 위해 Excel 템플릿의 이미지용으로 'A17' 템플릿 셀을 할당하고 이 셀을 이미지 데이터 필드인 'Picture'에 바인딩한 후 'Image' 속성을 true로 설정합니다. GcExcel에는 레이아웃 정의를 위한 'image.height' 및 'image.width' 속성이 포함되어 있습니다. 이 속성을 이용해 이미지의 높이와 너비를 지정할 수 있습니다. GcExcel은 템플릿 처리 중 템플릿 셀을 자동으로 데이터베이스의 이미지 필드에 매핑하고 이미지로 바꾸어 줍니다.


따라서 A17 셀을 {{dt.Picture(image=true, image.width=125px, image.height=150px)}}/로 정의하면 최종 Excel 보고서의 각 레코드에 너비와 높이가 각각 125픽셀 및 150픽셀인 자동차 그림이 추가됩니다.


향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성


조건부 서식 지원


Excel 보고서의 일반적이면서도 기본적인 기능을 또 한 가지 소개하자면 조건부 서식이 있습니다. 조건부 서식이 없으면 보고서가 단조로워 보이기 때문에 GcExcel의 Excel 템플릿에 이 기능에 대한 지원을 추가했습니다. 표준 Excel 파일과 동일한 방식으로 Excel 템플릿에서 조건부 서식을 적용할 수 있습니다.


누구나 알고 있듯이 엔진 배기량은 자동차를 구매할 때 중요한 고려 요소입니다. 이를 바탕으로 엔진 배기량 필드의 서식을 지정해 보겠습니다. 배기량 2,000cc 미만인 자동차 모델은 빨간색으로, 4,000cc 이상인 모델은 녹색으로 표시하려고 합니다.


이러한 서식을 지정하려면 템플릿 셀 'J27'을 선택하고 '조건부 서식(Conditional Formatting)' 옵션(Excel -> 홈(Home) -> 스타일 그룹(Styles Group))을 선택한 다음 '새 규칙(New Rule)'을 선택합니다. 보시다시피 '규칙 유형(Rule Type)'에서 여러 옵션을 선택할 수 있습니다. 두 번째 옵션인 '다음을 포함하는 셀만 서식 지정(Format only cells that contain)'을 선택하고 속성을 아래 그림과 같이 설정합니다.


향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성


GcExcel에서 이 템플릿을 처리하면 최종 Excel 보고서에서 조건부 서식이 유지됩니다. 템플릿 셀에 적용한 조건부 서식 규칙도 템플릿 셀과 동기화되면서 확장됩니다.


향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성


위의 그림은 'Transmission Automatic' 데이터 필드에도 조건부 서식이 유사하게 적용됨을 보여 줍니다.


위와 같은 기능을 사용해 Excel 템플릿을 정의하면 최종 Excel 템플릿은 다음과 같은 모양이 됩니다.


향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성


여기에서 최종 자동차 카탈로그 Excel 템플릿을 다운로드하십시오.


전문가다운 Excel 보고서 생성


향상된 Excel 기능을 사용하는 방법과 GcExcel을 사용해 Excel 템플릿을 만드는 방법을 배웠으니 이제 Excel에서 최종 자동차 카탈로그 보고서를 생성하는 Visual Studio 응용 프로그램을 빌드해 보겠습니다.


1단계: 설치


1.1 .Net Core 콘솔 응용 프로그램에서 '종속성(Dependencies)'을 마우스 오른쪽 버튼으로 클릭하고 'NuGet 패키지 관리(Manage NuGet Packages)'를 선택합니다.

1.2 '찾아보기(Browse)' 탭에서 'GrapeCity.Documents. Excel'을 검색하고 '설치'를 클릭합니다.

1.3 설치 중에 ‘미리 보기 변경(Preview Changes)’ 및 ‘라이선스 수락(License Acceptance)’ 여부를 묻는 대화 상자가 나타나면 '확인' 및 '동의함'을 클릭하여 계속 진행합니다.


2단계: C# 프로젝트 설정


2.1 네임스페이스 추가

프로그램 파일에서 다음 네임스페이스를 가져옵니다.

using GrapeCity.Documents.Excel;


2.2 새 통합 문서 만들기

기본 함수에 다음 코드를 추가하여 새 GcExcel 통합 문서를 만듭니다.

Workbook workbook = new Workbook();


2.3 Excel 템플릿 로드

Open 메서드를 사용하여 기존의 Excel 템플릿 파일(VS 응용 프로그램의 Resources 폴더에 위치)을 GcExcel 통합 문서에 로드합니다.

workbook.Open("Resources/CatalogTemplate.xlsx");


2.4 데이터 초기화

로드된 Excel 템플릿의 데이터 필드를 채울 데이터를 다음과 같이 로드합니다.

DataProvider dataProvider = new DataProvider(); 
var data = dataProvider.GetCars();


여기서 DataProviderGetCars 메서드를 통해 데이터베이스에 연결하고 자동차 모델 목록을 반환하는 사용자 정의 클래스입니다.

전체 목록을 보려면 이 파일을 다운로드하시면 됩니다.


2.5 데이터 소스 추가

AddDataSource 메서드를 사용해 통합 문서에 데이터를 로드합니다.

workbook.AddDataSource("dt", data);


2.6 템플릿 처리

ProcessTemplate을 사용해 템플릿을 실행합니다. 이 메서드를 호출하면 통합 문서에 로드된 Excel 템플릿에 데이터 필드가 자동으로 바인딩됩니다.

workbook.ProcessTemplate();


2.7 보고서를 XLSX로 저장

마지막으로 이 모든 내용을 Excel 파일로 내보냅니다. 데이터베이스 필드가 템플릿에 어떻게 바인딩되는지 확인하고 최종 보고서를 볼 수 있습니다.

workbook.Save("../../../CatalogReport.xlsx");


Save 메서드를 호출하면 데이터가 바인딩된 XLSX 형식의 자동차 카탈로그가 동적으로 생성됩니다. 여기에서 최종 자동차 카탈로그를 다운로드하십시오.


향상된 Excel 템플릿으로 C#에서 Excel 보고서 생성


자세한 내용을 보려면 도움말데모 섹션을 방문하십시오.


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

댓글목록

등록된 댓글이 없습니다.

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

태그

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