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

GcExcel v4 서비스팩 1 > 새로운 소식

본문 바로가기

.NET API

새로운 소식

서비스팩 GcExcel v4 서비스팩 1

페이지 정보

작성자 GrapeCity 작성일 2021-05-18 13:24 조회 485회 댓글 0건

본문

GcExcel Java와 GcExcel .NET Core의 새로운 v4.1 릴리스를 발표하게 되어 기쁘게 생각합니다.

이번 새로운 릴리스에는 기존 GcExcel .NET Excel 라이브러리 및 API 도구 키트에 대한 업데이트와 Excel 템플릿 처리의 성능 향상이 포함되었습니다. 아래에서 주요 특징을 확인해 보세요.

Excel 템플릿 처리 성능 향상

이제 템플릿을 사용하여 훨씬 빠르게 Excel 문서를 생성할 수 있습니다. ProcessTemplate() 메서드는 이제 데이터 소스의 여러 레코드를 더 효율적으로 처리합니다. 레코드 수가 증가하면 템플릿을 최종 보고서로 처리하는 속도도 빨라집니다. 이 작업은 이제 이전보다 몇 배 더 빨라졌으며 최대 100,000개의 레코드에 대해 테스트가 완료되었습니다.

다음은 100,000개의 레코드가 포함된 복잡한 보고서입니다.

템플릿 성능

이전 빌드보다 개선된 성능을 확인해 보세요.

성능 개선

최신 v4.1 GcExcel 패키지에 포함된 아래 템플릿 데모를 사용하여 보고서를 만들어 보세요.

GcExcel .NET | GcExcel Java

수식 문자열을 구문 트리로 구문 분석

전체 수식이 아니라 수식의 특정 부분만 수정해야 하는 경우가 종종 있습니다. 예를 들어, 아래 수식에서 'NOW()' 함수를 다른 날짜로 변경해야 할 수 있습니다.

=LET(AppUpTime,NOW()-DATE(2020,4,17)+366, YEAR(AppUpTime)-1900-1 & " years"

필요한 수식

=LET(AppUpTime,DATE(2021,2,14)-DATE(2020,4,17)+366,YEAR(AppUpTime)-1900-1&" years")

GcExcel v4.1에서는 수식을 만들고, 구문 분석하고, 수정할 수 있도록 수식을 구문 트리로 구문 분석하는 새로운 GrapeCity.Documents.Excel.Expressions 네임스페이스를 추가합니다. FormulaSyntaxTree 클래스는 Formula Expressions API의 항목입니다. 수식을 구문 분석하여 다음 기능을 수행할 수 있습니다.

  • 수식 생성
  • 수식 수정
  • 구문 분석 및 서식 옵션
  • 구문 트리 인쇄

아래 예에서는 수식을 다른 부분으로 구문 분석합니다.

수식 구문 분석

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

Excel 파일을 저장할 때 수식 무시

SpreadJS와 상호 작용할 때 사용자가 클라이언트 측에 Excel 파일을 수식 없이 값만 포함하여 반환해야 하는 경우가 종종 있습니다. GcExcel에서 Excel 파일을 저장할 때 이제 XlsxSaveOptions.IgnoreFormulas 속성을 설정할 수 있습니다. 이 속성을 설정하면 수식 셀을 값 셀로만 내보냅니다.

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

PdfSaveOptions에서 Open Action Script 지원

내보낸 PDF 파일을 열 때 특정 동작을 설정합니다. 예를 들어, PDF 파일을 열 때 GcExcel 템플릿으로 만든 PDF 양식 필드에서 값을 숫자로 변환할 수 있습니다. 이제 PdfSaveOptions 클래스의 OpenActionScript 속성에서 JavaScript 코드를 설정할 수 있습니다.

다음 코드는 OpenActionScript 속성에 정의된 JavaScript에서 텍스트 상자 필드 값을 숫자로 변환합니다.

Workbook workbook = new Workbook();
workbook.Open("SampleTemplate.xlsx");

workbook.ProcessTemplate();

PdfSaveOptions options = new PdfSaveOptions();
options.OpenActionScript="var fld1 = this.getField(\"num\");" +"fld1.value = fld1.value;" +"this.dirty = false;";

workbook.Save("SampleTemplate.pdf", options);

코드]숫자 서식

.NET 도움말 | Java 도움말

JSON을 로드하는 새 오버로드 메서드

새로운 JSON 옵션을 사용하면 DeserializationOptions를 사용하여 JSON 파일을 열 수 있습니다. JSON 파일을 열 때 오류 목록이 반환 값에 표시됩니다. Workbook.Open 메서드에 새 오버로드가 추가되었습니다.

var workbook = new Workbook(); 
var jsonErrors = workbook.Open("file.json", new DeserializationOptions { IgnoreFormula = true });

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

값을 설정할 때 계산 엔진 성능 향상

GcExcel에서는 새로운 Workbook.DeferUpdateDirtyState 부울 속성을 추가합니다. 셀 값을 변경하고 Workbook.DeferUpdateDirtyState =True를 설정하면 GcExcel에서 수식 셀 수정 상태를 즉시 업데이트하지 않습니다. 따라서 Excel 파일에서 값을 설정할 때 계산 엔진의 성능이 개선됩니다.

.NET 도움말 | Java 도움말

SpreadJS 통합을 위한 추가 기능

RangeTemplate 셀 유형 지원


새로운 RangeTemplate 클래스를 사용하면 셀 범위 템플릿을 단일 셀 유형으로 정의하고 해당 템플릿을 셀에 적용할 수 있습니다. 그러면 다른 데이터를 여러 행과 열을 포함하는 템플릿에 로드하여 카드 보기를 하나의 셀에 표시할 수 있습니다.

셀 유형이 셀 또는 셀 범위에 적용되면 범위 템플릿에서 셀 값을 데이터 소스로 사용하여 지정된 범위의 바인딩 경로를 확인합니다. 이 사용법은 다른 셀 유형에도 동일합니다.

rangetemplate 클래스

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


CheckboxList 및 RadioButtonList 셀 유형에 사용자 정의 객체 적용


Checkboxlist 및 RadioButtonlist에서 사용자는 목록에서 여러 항목을 선택할 수 있는 기능이 필요합니다. 이제 CheckboxList 및 RadioButtonList 셀 유형에 사용자 정의 객체를 적용하여 여러 옵션을 선택할 수 있습니다.

참고: 이 결과는 PDF 내보내기에서만 표시됩니다.

checkboxlist radiobuttonlist

.NET 도움말 | Java 도움말

.NET Checkbox 데모 | .NET Radiolist 데모 | Java Checkbox 데모 | Java Radiolist 데모


통합 문서 요소의 새로운 ToJson 및 FromJSON 메서드


SpreadJS 사용자가 통합 문서의 특정 부분만 업데이트해야 하는 경우가 종종 있습니다. 예를 들어, 전체 통합 문서를 로드하거나 저장하지 않고 범위, 셰이프, 표 또는 이러한 데이터만 업데이트해야 할 수 있습니다. GcExcel에서는 여러 통합 문서 요소에 대한 FromJson 및 ToJson 메서드를 제공하여 이러한 작업을 지원합니다.

예를 들어, IStyle.FromJson(string json)을 사용하여 기존에 명명된 스타일을 업데이트하고 IStyle.ToJson()을 사용하여 명명된 스타일을 JSON 문자열로 내보낼 수 있습니다. 이러한 메서드는 다음 클래스에 포함됩니다.

  • Style
  • Range
  • Validation
  • SparklineGroup, Sparkline
  • FormatConditions
    • Top10
    • AboveAverage
    • UniqueValues
    • ColorScale
    • DataBar
    • IconSetCondition
  • Table
  • Shape
  • Slicer
  • Comment
  • Name
  • PageSetup
  • ProtectionSettings

다음 코드는 JSON에서 유효성 검사 설정을 가져옵니다.

var book = new Workbook();
var sheet = book.Worksheets[0];

sheet.Range["A1:B2"].Validation.FromJson("{\"type\":5,\"condition\":{\"conType\":0,\"compareType\":1,\"item1\":{\"conType\":13,\"compareType\":5,\"expected\":\"9:08:09\"},\"item2\":{\"conType\":13,\"compareType\":3,\"expected\":\"19:08:09\"},\"ignoreBlank\":true},\"ranges\":\"A3:B4\",\"highlightStyle\":\"{\\\"type\\\":0,\\\"color\\\":\\\"red\\\"}\"}");

sheet.Range["C1:D2"].Validation.FromJson("{\"inputTitle\":\"Tip\",\"inputMessage\":\"Enter a date between 12/31/2012 and 12/31/2013.\",\"type\":4,\"condition\":{\"conType\":0,\"compareType\":1,\"item1\":{\"conType\":5,\"compareType\":5,\"expected\":\"/OADate(41274)/\",\"ranges\":[{\"row\":0,\"rowCount\":2,\"col\":2,\"colCount\":2}]},\"item2\":{\"conType\":5,\"compareType\":3,\"expected\":\"/OADate(41639)/\",\"ranges\":[{\"row\":0,\"rowCount\":2,\"col\":2,\"colCount\":2}]},\"ignoreBlank\":true,\"ranges\":[{\"row\":0,\"rowCount\":2,\"col\":2,\"colCount\":2}]},\"ranges\":\"C3:D4\",\"highlightStyle\":\"{\\\"type\\\":0,\\\"color\\\":\\\"red\\\"}\"}");

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


사용자 정의 객체를 셀 값으로 가져오기 및 설정


SpreadJS의 일부 API는 사용자 정의 데이터 형식(custom data types / user-defined data types)을 지원합니다. GcExcel에서는 이제 SpreadJS 상호 운용성을 위해 Range.Value 속성에서 사용자 정의 데이터 형식을 지원합니다.

다음 코드는 특정 범위에 Dictionary를 할당합니다.

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

var activeSheet = workbook.ActiveSheet;
IRange a1 = activeSheet.Range["A1"];
var dict = new Dictionary<string, object>()
{
    {"TempData1", 1},
    {"TempData2", "Temp value 2"},
    {"TempData3", 3},
    {"TempData4", "Temp value 4"}
};
// Set temporary data to a range
a1.Value = dict;

// Display the custom object later
var obj = (IReadOnlyDictionary<string, object>)a1.Value;
var row = 1;
foreach (var kv in obj)
{
    activeSheet.Range["B" + row].Value = kv.Key;
    activeSheet.Range["C" + row].Value = kv.Value;
    row += 1;
}

// Arrange
activeSheet.Columns.AutoFit();
activeSheet.Columns[0].Hidden = true;

//save to a pdf file
workbook.Save("setcustomrangevalue.pdf");

.NET 도움말 | Java 도움말


.NET 데모(사용자 정의 객체를 범위로 설정) | .NET 데모(사용자 정의 함수에서 사용자 정의 객체 설정)

Java 데모 .NET 데모(사용자 정의 객체를 범위로 설정) | Java 데모(사용자 정의 함수에서 사용자 정의 객체 설정)


* GcExcel에서 지원되는 SpreadJS 기능 목록 보기



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

인기글

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