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

GcExcel V5 > 새로운 소식

본문 바로가기

.NET API

새로운 소식

정식출시 GcExcel V5

페이지 정보

작성자 GrapeCity 작성일 2022-01-17 14:01 조회 468회 댓글 0건

본문

GcExcel의 새로운 v5 릴리스를 발표하게 되어 기쁘게 생각합니다. .NET 및 Java 릴리스 모두 객체 모델을 로드하지 않고도 Excel 파일에서 데이터를 보다 빠르게 가져오는 방법, .NET 5 및 .NET 6에서 작동하는 새로운 인쇄 API 등이 포함됩니다. 아래에서 새로운 기능을 자세히 살펴 보세요.

데이터 가져오기 함수


일반적으로 Excel 파일에서 모든 데이터를 추출하지 않고 특정 데이터만 추출하는 경우가 많습니다. 하지만 Excel API에서 Excel 파일 전체를 로드하려는 경우 프로세스가 지루하고 시간이 많이 소요될 수 있습니다. GcExcel에는 전체 객체 모델을 로드하지 않고도 Excel 파일에서 데이터만 가져오는 새로운 ImportData() 함수가 추가되었습니다.


이 함수를 사용하면 여러 Excel 파일의 데이터를 보다 쉽고 효율적으로 동시에 가져올 수 있습니다. 전체 데이터를 가져올 수 있거나 워크시트에서 가져올 데이터 범위를 지정할 수도 있습니다.


// Create a new workbook
Workbook workbook = new Workbook();
InputStream fileStream = this.getResourceStream("xlsx\\AgingReport.xlsx");
// Import data of a range from the fileStream
Object[][] data = Workbook.importData(fileStream, "Aging Report", 8, 2, 21, 7);
// Assign the data to current workbook
workbook.getWorksheets().get(0).getRange(0, 0, 21, 7).setValue(data);

// Save to an excel file
workbook.save("ImportData.xlsx")

데이터 가져오기

.NET 도움말 | Java 도움말 | .NET 데모 | Java 데모


동적 배열 수식을 설정하기 위한 새 Formula2 속성


2018년에 Microsoft Excel은 한 수식 기반의 셀 범위에 여러 결과를 반환하는 동적 배열 수식이라는 개념을 도입했습니다. 이를 유출된 범위(spilled-range) 기능이라고도 합니다.


이러한 수식은 중복 값을 제거하고, 목록을 정렬하며, 필터링된 데이터 범위를 출력하는 등의 방법으로 고유 값 목록을 생성하는 데 사용됩니다. 기존 함수에서는 이와 동일한 유출된 범위 기능을 활용할 수 있습니다.


GcExcel에서는 코드를 통해 Excel 파일에 동적 배열 수식을 추가하는 포괄적 지원이 추가되었습니다. 새로운 IRange.Formula2 속성을 사용하면 워크시트에서 동적 배열 수식을 정의할 수 있습니다. 또한 이 속성을 사용하면 교차 연산자를 자동으로 추가하지 않고 수식을 지정할 수 있습니다.


다음은 IRange.Formula2 속성을 사용하여 동적 배열 수식을 설정하는 코드입니다. 또한 이 코드는 필터 함수를 사용하여 특정 범위의 데이터를 필터링한 후 결과를 셀 범위로 "유출"합니다.


수식

.NET 도움말 | Java 도움말 | .NET 데모 | Java 데모


스레드 메모


논의 및 응답을 개선하기 위해 Excel 스레드 메모를 사용하여 인라인 또는 중첩 메모에 회신하고 여러 메모에 문자를 달아 대화 스타일의 스레드를 만들 수 있습니다. 

GcExcel에서는 Excel 문서에 메모를 추가할 수 있었지만, 이제는 GcExcel에 메모 스레드를 추가할 수 있도록 하여 스레드 메모를 완벽하게 지원합니다.


GcExcel에는 Excel 문서의 스레드 메모를 사용하여 회신을 추가하고 메모를 삭제하며 메모를 탐색하는 등의 작업을 할 수 있는 IWorksheet.CommentsThreaded 컬렉션이 추가되었습니다. 새로운 IRange.AddCommentThreaded 메서드를 사용하면 스레드 메모를 범위에 추가할 수 있으며, IRange.ClearCommentsThreaded()는 스레드 메모를 범위에서 지우는 데 사용할 수 있습니다.


둘 이상의 사용자가 여러 Excel 파일에 공통된 메모를 갖고 있다고 가정하겠습니다(아래 예시 참조). 새로운 API는 메모를 프로그래밍 방식으로 추가하여 여러 Excel 문서를 포괄하는 데 도움이 됩니다.


메모

.NET 도움말 | Java 도움말 | .NET 데모 | Java 데모
 

연결된 그림


차트, 데이터 테이블, 조건부 서식 등을 모두 하나의 시트에 결합하는 것은 복잡한 작업이 될 수 있습니다. 이러한 요소의 크기가 일정하지 않은 경우가 많으므로 이를 하나의 대시보드 시트에 표현하기 어려울 수 있습니다. 이 경우에는 연결된 그림이 유용할 수 있습니다. 최종 대시보드의 실제 데이터/표/차트에 연결된 그림을 생성할 수 있습니다.


장점은 어떤 크기든지 수용할 수 있다는 점과 데이터가 변경되면 연결된 그림의 데이터도 변경된다는 점입니다. 이 기능을 카메라 사진이라고도 합니다. 이제 GcExcel은 다양한 오버로드를 통해 연결된 그림을 새 메서드(IShapes.AddCameraPicture)에 추가할 수 있도록 지원합니다. 다음과 같은 새 속성도 추가되었습니다.


  • IPictureFormat.TransparentBackground { get; set; }: 지정된 그림 형식에 투명 배경을 사용할지 여부 설정
  • IPictureFormat.Reference { get; set; }: 현재 그림의 참조 설정


다음은 데이터 범위의 카메라 사진을 추가하는 코드입니다.

//create a new workbook
var workbook = new GrapeCity.Documents.Excel.Workbook();

var ws = workbook.Worksheets[0];

object[,] data = new object[,]{
    {"Name", "City", "Birthday", "Eye color", "Weight"},
    {"Richard", "New York", new DateTime(1968, 6, 8), "Blue", 67},
    {"Nia", "New York", new DateTime(1972, 7, 3), "Brown", 62},
    {"Jared", "New York", new DateTime(1964, 3, 2), "Hazel", 72}
};

ws.Range["A1:E4"].Value = data;
ws.Range["A:E"].EntireColumn.ColumnWidth *= 1.5;

ws.Range["A1:E1"].Interior.Color = System.Drawing.Color.FromArgb(68, 114, 196);
ws.Range["A1:E1"].Font.Color = System.Drawing.Color.White;
ws.Range["A1:E4"].Borders.Color = System.Drawing.Color.FromArgb(91, 155, 213);
ws.Range["A1:E4"].Borders.LineStyle = BorderLineStyle.Thin;

//add camera picture
ws.Shapes.AddCameraPicture("$A$1:$E$4", 398, 0, 347, 58);

// Save to an excel file
workbook.Save("addcamerapicture.xlsx");

그림

소스 데이터가 변경되면 연결된 그림에서는 어떻게 변경되는지 확인해 보세요.

.NET 도움말 | Java 도움말 | .NET 데모 | Java 데모


통합 문서 보기


사용자는 일반적으로 기본 Microsoft Excel 보기에서 작업하지만, 분석하려는 데이터에 따라 워크시트 보기가 변경될 수 있습니다. 예를 들어, 페이지 레이아웃 보기에서는 문서를 인쇄하면 어떤 모양이 될지를 시각화할 수 있으며, 페이지 나누기 보기에서는 페이지 나누기가 어느 위치에 나타날지 확인할 수 있습니다.


여러 문서에 공통 보기가 있어야 하는 경우 이제는 GcExcel을 사용하여 프로그래밍 방식으로 제어할 수 있습니다. IWorksheetView.ViewType을 사용하면 기본, 페이지 레이아웃, 페이지 나누기 미리 보기의 세 가지 보기를 미리 정의할 수 있습니다.


또한 Excel에서 보기를 사용자 정의할 수도 있습니다. 사용자 정의 보기에서는 눈금선 또는 제목 없음과 같은 디스플레이 및 인쇄 설정, 특정 여백, 특정 통합 문서 보기 등을 지정할 수 있습니다.


그러면 보기가 저장되어 언제든지 쉽게 스프레드시트에 적용할 수 있습니다. 또한 새로운 ICustomView 인터페이스와 IWorkbook.CustomViews 컬렉션도 GcExcel에 도입하여 사용자 정의 보기를 워크시트에 추가할 수 있도록 했습니다.


다음은 워크시트의 기본 보기 유형을 PageBreakPreview로 설정하는 코드입니다.

//create a new workbook
var workbook = new GrapeCity.Documents.Excel.Workbook();

IWorksheet worksheet = workbook.Worksheets[0];
worksheet.Open("CustomerProfitabilityAnalysis.xlsx");
worksheet.Range["J12"].Value = 1;

//Set the view mode of the worksheet to PageBreakPreview.
worksheet.SheetView.ViewType = ViewType.PageBreakPreview;
//Modify the zoom of the PageBreakPreview to 80%.
worksheet.SheetView.Zoom = 80;

// Save to an excel file
workbook.Save("CustomerProfitabilityAnalysis.xlsx");

보기

.NET 도움말 | Java 도움말

페이지 나누기 미리 보기 .NET 데모 | 사용자 정의 보기 .NET 데모

페이지 나누기 미리 보기 Java 데모 사용자 정의 보기 .NET 데모


GETPIVOTDATA 함수 지원


피벗 테이블은 대용량의 데이터를 보여주지만, 셀 참조가 아닌 피벗 테이블 구조를 기준으로 특정 데이터만 검색해야 하는 경우가 있습니다.


GETPIVOTDATA 함수는 참조된 필드가 계속 존재하는 한 피벗 테이블이 변경되는 경우에도 작동합니다. 이제 GcExcel은 다양한 워크시트에 대해 GETPIVOTDATA 함수를 생성하기 위한 GETPIVOTDATA(…) 함수와 새로운 IRange.GenerateGetPivotDataFunction(IRange destination = null) 메서드를 지원합니다.

.NET 도움말 | Java 도움말 | .NET 데모 | Java 데모


문서를 실제 프린터로 직접 인쇄


지금까지 .NET 표준 앱에서 작동하는 크로스 플랫폼 API는 인쇄 명령을 사용하는 데 문제가 있었습니다. 인쇄 API의 가용성에 기본적인 한계가 있기 때문입니다. GcExcel v5에서는 새로운 인쇄 API가 추가되므로 Windows 플랫폼에서 Excel 문서를 실제 프린터로 직접 인쇄할 수 있습니다.


새 인터페이스 IWorkbook.PrintOut 및 IWorksheet.PrintOut은 실제 프린터를 호출하여 통합 문서 또는 워크시트를 인쇄할 수 있습니다. 인쇄가 지원될 뿐만 아니라 사전에 설정할 수 있는 추가 옵션도 있습니다. 모두 프로그래밍 방식으로 Excel 파일 인쇄 명령을 전송하는 동안 가능합니다.


이제 GcExcel은 GcPdf를 사용하여 통합 문서를 프린터로 출력합니다. Windows에서 GcPdf를 사용하여 PDF를 인쇄하기 위해 GcExcel은 새 패키지인 "GrapeCity.Documents.Imaging.Windows"를 참조해야 합니다.


다음은 워크시트를 사용 중인 프린터로 인쇄하기 위한 코드입니다.

IWorkbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];

worksheet.Range["F11"].Value = 1;
worksheet.Range["E55"].Value = 2;
worksheet.Range["N18"].Value = 3;
worksheet.Range["N53"].Value = 4;

// Create a print options.
PrintOutOptions options = new PrintOutOptions();
// Set the printer name to print.
options.ActivePrinter = "Microsoft Print to PDF";

//Print this workbook to "Microsoft Print to PDF".
workbook.PrintOut(options);

* 이 기능 향상은 .NET용 GcExcel에만 적용되며 Java용 GrapeCity.Documents.Imaging.Windows 또는 GcPdf가 없는 GcExcel Java에서는 지원하지 않습니다.

.NET 도움말 | .NET 데모


GrapeCity SpreadJS 통합

모든 릴리스에서 GcExcel은 훨씬 더 많은 SpreadJS 기능 지원을 추가하였므로 클라이언트 측 스프레드시트 제품과의 호환성이 향상됩니다.


* 이 기능은 SpreadJS 및 PDF 내보내기에서만 작동하며 Microsoft Excel에서는 지원되지 않습니다.

.NET 도움말 | Java 도움말 | .NET 데모 | Java 데모



표 expandBoundRows API 지원


이제 GcExcel은 표의 바인딩 행을 확장할 수 있도록 SpreadJS API를 지원합니다. 새로운 ITable.ExpandBoundRows 속성은 표에 바인딩된 데이터가 변경되는 시점에 대한 정책을 설정합니다.


true로 설정된 경우에는 데이터 변경 시 전체 행이 추가 또는 삭제되면서 행 수가 조정됩니다. false로 설정된 경우에는 Microsoft Excel 정책을 사용하여 표를 확장하므로 데이터 소스 변경을 조정하기 위한 행 추가 또는 삭제가 허용되지 않습니다.

.NET 도움말 | Java 도움말 | .NET 데모 | Java 데모


 


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

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

인기글

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