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

GcExcel에서 Excel 템플릿을 사용하여 페이지가 매겨진 보고서 생성하기 > 블로그 & Tips

본문 바로가기

Java & Kotlin API

블로그 & Tips

GcExcel에서 Excel 템플릿을 사용하여 페이지가 매겨진 보고서 생성하기

페이지 정보

작성자 GrapeCity 작성일 2023-01-12 15:00 조회 674회 댓글 0건

본문

어떤 업계와 직무에 종사하든지, 진행 상황이나 성과, 현 상황 분석이나 연구, 기타 여러 비즈니스 활동 등을 보여주는 스프레드시트를 제작해야 하는 경우가 많습니다. 스프레드시트에는 복잡한 거래 정보, 판매 보고서, 상세한 분석, 작업 통계 등에 대한 간단한 정보를 담을 수 있습니다.


주로 이러한 스프레드시트 문서는 데스크톱이나 모바일 등 디지털 매체에서 볼 수 있도록 디자인되었습니다. 콘텐츠를 쉽게 확대/축소하고, 화면에 맞추고, 스크롤할 수 있기 때문에 페이지 크기를 걱정할 필요가 없습니다. 하지만 실제 사본을 공유 및 보관하기 위해서는 스프레드시트를 인쇄해야 합니다. 이런 경우에는 스프레드시트를 특정 용지 크기에 딱 맞게 생성해야 합니다.



Excel 스프레드시트의 페이지 매김


Excel 스프레드시트는 주로 송장, 혈액 검사 보고서, 수강생 진행 상황 보고서, 제품 카탈로그, 목록 등과 같이 구조화된 레이아웃을 만드는 데 사용됩니다. 이러한 레이아웃은 특정 페이지 크기를 보유해야 합니다. 데이터 소스의 데이터를 사용하여 채우는 경우 정의된 레이아웃을 통해 여러 시트로 페이지를 자동으로 매기는 방법이 필요합니다.


일반적인 페이지 디자인은 페이지, 그룹 또는 세부 정보 섹션에 대한 헤더와 푸터로 구성됩니다. 연속적으로 흐르는 페이지가 매겨지지 않은 시나리오에서 일반적으로 헤더 섹션은 시작 시 한 번 표시되고 푸터 섹션은 보고서의 끝에 표시됩니다. 하지만 페이지가 매겨진 시나리오에서 이러한 섹션은 스프레드시트가 생성되는 예상 방식에 따라 표시될 수 있습니다. 예를 들어 페이지 헤더/푸터는 모든 페이지에 표시될 수 있지만 아래 이미지와 같이 그룹 헤더는 시작 시 한 번 표시되고 그룹 푸터는 끝에 한 번 표시됩니다.


최신 v6 릴리스에서 GcExcel(GrapeCity Documents for Excel) 템플릿은 페이지가 매겨진 Excel 스프레드시트를 프로그래밍 방식으로 만들 수 있는 여러 새로운 속성 및 기능을 도입합니다.


이 블로그에서는 GcExcel .NETGcExcel Java에 이러한 새 API를 사용하여 Excel 파일에서 페이지 매김이 수행되는 방식에 대해 살펴봅니다.


샘플 - BloodTest.zipProductCatalog.zip를 다운로드하여 시작하십시오.



GcExcel 템플릿을 사용한 페이지 매김


GcExcel Template을 사용하여 두 가지의 일반적인 비즈니스 상황을 충족하도록 스프레드시트를 프로그래밍 방식으로 페이지 매김할 수 있습니다.


  • 페이지 크기 제한을 넘어 다음 페이지(또는 시트)로 콘텐츠 자동 이동

  • 페이지(또는 시트)에 표시할 레코드(또는 데이터) 수 제어


GcExcel에서 전자 요구 사항은 페이지-크기 페이지 매김 접근 방법(Page-size pagination)을 사용하여 수행할 수 있으며 후자는 페이지 당 개수 페이지 매김 접근 방법(Count per Page pagination)을 사용하여 완료할 수 있습니다. 다양한 속성 및 기능 GcExcel 제공 사항은 페이지 매김에 대한 접근 방법을 기반으로 아래에 나열된 대로 분류됩니다.



PaginationMode

페이지-크기 페이지 매김

Page-size pagination

페이지당 개수 페이지 매김

Count per Page pagination 

 RepeatOutput

 CountPerPage

 KeepTogether

 RepeatType

 AttachTo

 NoRepeatAction

 RepeatWithGroup

 -

 PageNumber()

 -

 PageCount()


이러한 속성 및 기능은 다음 코드 스니펫과 같이 전역 설정 TemplateOptions.PaginationMode를 활성화하는 경우 작동됩니다.

// Set PaginationMode is true.
workbook.Names.Add("TemplateOptions.PaginationMode", "true");


전역 페이지 매김 모드를 활성화하면 페이지-크기 페이지 매김이 기본적으로 활성화됩니다.

워크시트는 Excel 템플릿 파일의 용지 크기(너비 및 높이)에 따라 여러 시트로 페이지가 매겨집니다.


이 접근 방법은 식료품 목록, 제품 카탈로그, HR 목록 등과 같은 목록-유형 문서의 페이지를 매기는 데 권장됩니다.


저희는 제품 카탈로그 템플릿으로 사용했으며 결과 문서는 아래와 같이 여러 페이지(또는 시트)로 표시됩니다.



ProductCatalog 샘플을 다운로드하십시오.


페이지-크기 페이지 매김 속성 (Page-Size Pagination Properties)


페이지-크기 페이지 매김으로 데이터 행이 GcExcel 템플릿 문서의 페이지 크기를 초과하는 경우 새 페이지(또는 시트)가 생성됩니다.


이 페이지 매김 모드에서 세부 정보 행은 한 페이지에서 다음 페이지로 흐르며 헤더 및 푸터는 각 페이지에서 반복됩니다. (즉, 푸터는 항상 첫 번째에 표시되며 푸터는 마지막에 표시됨).


헤더 또는 푸터가 페이지에서 분리되어 홀로 표시되거나 병합된 셀 데이터가 두 페이지 이상에 걸쳐 템플릿 셀의 첫 번째 일치 항목에서 한 번만 표시되는 경우가 있습니다.


이러한 상황을 관리하도록 GcExcel 템플릿은 페이지 매김 속성을 지정하는 데 RepeatOutput, KeepTogether, AttachTo, RepeatWithGroup의 네 가지 속성을 제공합니다.


RepeatOutput


Excel 템플릿(정적 또는 템플릿 필드)에서 병합된 셀이 페이지에서 확장되면 RepeatOutput 속성을 사용하여 병합된 셀의 일부를 포함하는 첫 번째 페이지 또는 모든 페이지에 값을 표시할지 여부를 결정할 수 있습니다. false를 기본값으로 부울 값을 사용합니다.


구문:

{{ds.Field(RepeatOutput=True|False)}}  //with template field
or
Text {{(RepeatOutput=True|False)}}  //with static text


예를 들어 위에서 생성한 제품 카탈로그 문서에서 제목이 페이지에서 병합되어 표시되는 것을 볼 수 있습니다. 3, 4, 5페이지에서 첫 번째 셀은 비어 있는 상태로 표시됩니다.


또한 아래 표시된 대로 확장되는 모든 페이지에서 반복되도록 제품 카탈로그 템플릿에서 제목 필드와 함께 이 설정을 사용했습니다.


이 설정과 함께 ProductCatalog-Template-RepeatOutput.xlsxProductCatalog 샘플에서 참조하십시오.



KeepTogether


KeepTogether 속성은 템플릿 셀 및 해당 하위 항목이 동일한 페이지에 최대한 많이 표시되도록 합니다.


가로 페이지 매김, 세로 페이지 매김 또는 양쪽 모두의 경우 셀을 함께 유지하도록(특히 그룹화된 데이터의 경우) 선택할 수 있습니다.


구문:

{{ds.TemplateField(R=<group range>, KeepTogether=Both|Vertical|Horizontal|None<default>)}}


위의 제품 카탈로그 샘플에서 이 속성을 사용하여 최대한 많은 그룹화된 데이터를 함께 유지하며 출력은 아래처럼 표시됩니다.


이 설정과 함께 ProductCatalog-Template-KeepTogether.xlsx 파일을 ProductCatalog 샘플에서 확인하십시오.



AttachTo


AttachTo 속성을 사용하면 셀 템플릿을 다른 셀과 바인딩하여 페이지에 홀로 표시되지 않도록 합니다. 이 속성은 문서에서 헤더/푸터가 분리되는 것을 방지할 수 있습니다.


헤더 또는 푸터를 첨부하려는 일반적으로 세부 정보 셀인 셀 참조를 입력으로 사용합니다.


구문:

{{(AttachTo=<Cell reference>)}}


제품 카탈로그는 항목 설명, 가격, 변형 및 코드 정보를 함께 표시합니다. AttachTo 속성이 없으면 변형코드 정보가 아래와 같이 제품에 대해 분리되어 표시됩니다.


이 설정과 함께 ProductCatalog-Template-AttachTo.xlsx 파일을 ProductCatalog 샘플에서 확인하십시오.



RepeatWithGroup


RepeatWithGroup 속성은 하나의 셀 또는 셀 범위를 반복할지 여부를 결정합니다. 페이지-크기 기반의 페이지 매김 시나리오에서 이 속성은 이 셀을 반복하려는 셀 참조를 수락합니다. 예를 들어 그룹 헤더는 모든 페이지에서 세부 정보 행을 반복해야 합니다.


구문:

{{(R=<cell range to repeat>, RepeatWithGroup=<cell reference to repeat with>)}}


아래와 같이 세부 정보 레코드와 함께 모든 페이지에 표시되도록 제품 카탈로그에서 표 헤더와 함께 이 설정을 사용합니다.



이 설정과 함께 ProductCatalog-Template-RepeatGroup.xlsxProductCatalog 샘플에서 참조하십시오.



페이지당 개수 페이지 매김 속성(Count per Page Pagination Properties)


페이지별 개수 페이지 매김을 사용하면 데이터 행이 그룹화된 데이터에 대해 특정 개수를 초과하는 경우 새 페이지(또는 시트)가 생성됩니다.


새로 생성된 페이지에는 템플릿 페이지와 동일한 레이아웃이 있습니다. 이 페이지 매김 접근 방법은 송장, 혈액 테스트 보고서, 제품 변경 양식 등과 같이 구조화된 Excel 파일에 사용할 수 있습니다.


레이아웃이 페이지에 표시되는 방식을 관리할 수 있도록 GcExcel 템플릿CountPerPage, RepeatType, NoRepeatAction, RepeatWithGroup, PageNumber(), PageCount()와 같은 4개의 속성과 2개의 기능을 제공합니다.


BloodTest 샘플을 다운로드하여 이러한 속성을 사용해보십시오.



CountPerPage


CountPerPage 속성은 셀 템플릿에 대한 그룹화된 값의 인스턴스 수를 제한합니다. 정수 값 또는 특수 값*을 수락합니다.


이 속성을 사용하려면 아래 표시된 대로 템플릿 필드로 약어 CP를 추가합니다.

{{ds.FieldName(CP=5)}}
or
{{ds.FieldName(CP=*)}}



CountPerPage <number> (CP=number)


CP가 숫자 값이면 그룹화된 인스턴스의 수는 지정된 행의 수로 엄격히 제한됩니다.


레코드 수가 그룹 인스턴스 내에서 초과하거나 다음 그룹 인스턴스가 시작되면 새 페이지가 생성됩니다. 생성된 각 페이지에는 동일한 레이아웃이 있습니다.


예를 들어 저희는 아래 표시된 대로 혈액 테스트 레코드의 최대 수를 제한하도록 이 속성을 사용했습니다.


이 설정과 함께 BloodTestReport-Template-LimitedRows.xlsxBloodTest 샘플에서 참조하십시오.



CountPerPage <*> (CP=*)


CP 값이 와일드카드이면 페이지가 매겨진 시트에 나타나는 그룹화된 인스턴스의 행 수에는 제한이 없습니다. 하지만 페이지별로 표시된 행은 용지 높이에 따라 제어됩니다.


그룹화된 인스턴스의 다음 행을 페이지 높이 내에서 수용할 수 없는 경우 새 시트가 생성됩니다. 이 속성은 그룹의 레코드 수가 정의되지 않고 다양할 수 있는 템플릿에서 사용할 수 있습니다.


예를 들어 저희는 아래와 같이 페이지에 혈액 테스트 범주의 최대 레코드를 표시하는 데 사용했습니다.


이 설정과 함께 BloodTestReport-Template-UnLimitedRows.xlsxBloodTest 샘플에서 참조하십시오.



RepeatType


페이지 매김이 그룹화된 인스턴스의 수를 기반으로 수행되면 모든 페이지에 같은 레이아웃이 있습니다. RepeatType속성은 그룹 내에서 셀 값을 반복하는 방법을 결정하도록 돕습니다.


예를 들어 그룹 또는 세부 정보 헤더가 첫 번째 페이지에만 표시되는 동안 모든 페이지에서 페이지 헤더를 반복합니다.

기본적으로 이 속성은 PerPage로 설정됩니다. 첫 번째 또는 마지막 페이지에서만 표시할지 여부에 따라 FirstPage 또는 LastPage로 설정할 수 있습니다.


구문:

{{(R=<cell range>, RepeatType=PerPage|FirstPage|LastPage)}}

참고: 지정된 셀 범위에 포함된 셀에서 이 속성을 설정하십시오 


예를 들어 저희는 이 설정을 사용하여 아래와 같이 첫 번째 페이지에만 PatientSpecimen 정보를 혈액 테스트 보고서에 표시합니다.



이 설정과 함께 BloodTestReport-Template-RepeatType.xlsxBloodTest 샘플에서 참조하십시오.



RepeatWithGroup


RepeatWithGroup 속성은 하나의 셀 또는 셀 범위를 반복할지 여부를 결정합니다.


개수 기반 페이지 매김 시나리오에서 이 속성은 셀이 반복되는 범위에서 그룹을 지정하는 셀 참조를 수락합니다.


구문:

{{(R=<cell range to repeat>, RepeatWithGroup=<group cell reference>)}}


이전 템플릿의 첫 페이지에서 PatientSpecimen 정보를 반복하도록 선택한 경우 세부 정보가 또 다른 환자에 대한 것이어도 5페이지에 표시되지 않습니다.


이는 RepeatWithGroup 속성이 없으면 워크시트의 그룹 범위가 사용되므로 생성된 페이지 간에 첫 번째 페이지에만 섹션이 표시되기 때문입니다.


각 그룹에 대해 정보 섹션이 표시되도록 아래와 같이 RepeatWithGroup 속성을 사용합니다.


BloodTestReport-Template-RepeatGroup.xlsxBloodTest 샘플에서 참조하십시오.


NoRepeatAction


RepeatTypePerPage로 설정되면 모든 페이지에 셀(또는 셀 범위)이 표시됩니다. 하지만 다르게 설정되면, 즉 일부 템플릿 셀이 첫 번째 또는 마지막 페이지에서만 반복되는 경우 비어 있는 셀이 다른 페이지의 관련 위치에 표시됩니다.


여기의 NoRepeatAction 속성은 콘텐츠를 제거할지 또는 해당 행/열을 삭제할지 여부를 선택하는 데 도움을 줄 수 있습니다.


기본적으로는 ClearCells로 설정되며 셀은 비어 있는 상태로 표시됩니다. 지원되는 다른 값으로는 DeleteRows DeleteColumns가 있으며 해당하는 행 및 열을 각각 제거합니다.


구문:

{{(R=<cell range>, RepeatType=FirstPage|LastPage, NoRepeatAction=ClearCells|DeleteRows|DeleteColumns)}}



이 설정과 함께 BloodTestReport-Template-NoRepeatAction.xlsxBloodTest 샘플에서 참조하십시오.



PageNumber()


이 기능은 첨부된 그룹의 범위에서 현재 페이지의 페이지 번호를 반환합니다. 그룹이 지정되지 않으면 페이지 번호가 통합 문서의 범위에서 반환됩니다.


구문:

{{=PageNumber()}}
​
{{=PageNumber(<cell reference>)}}




PageCount()


이 기능은 그룹에 생성된 페이지 번호를 반환합니다. 그룹이 지정되지 않으면 페이지 수가 통합 문서 범위에서 계산됩니다.


구문:

{{=PageCount()}}
​
{{=PageCount(<cell reference>)}}


아래 표시된 대로 '&'를 사용하여 PageNumber() 함수 및 텍스트와 결합합니다.

{{=PageNumber(<cell reference>) & "/" & PageCount(<cell reference>)}}
or
{{="Page:" & PageNumber() & "/" & PageCount()}}



이러한 함수와 함께 BloodTestReport-Template-PageNumber.xlsxBloodTest 샘플에서 참조하십시오.


템플릿 페이지 매김 .NET 도움말 | .NET 데모 | Java 도움말 | Java 데모에 대한 데모 및 문서를 확인하십시오





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

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

댓글목록

등록된 댓글이 없습니다.

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

태그1

인기글

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