서비스팩 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 패키지에 포함된 아래 템플릿 데모를 사용하여 보고서를 만들어 보세요.
수식 문자열을 구문 트리로 구문 분석
전체 수식이 아니라 수식의 특정 부분만 수정해야 하는 경우가 종종 있습니다. 예를 들어, 아래 수식에서 '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);
]
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 파일에서 값을 설정할 때 계산 엔진의 성능이 개선됩니다.
SpreadJS 통합을 위한 추가 기능
RangeTemplate 셀 유형 지원
새로운 RangeTemplate 클래스를 사용하면 셀 범위 템플릿을 단일 셀 유형으로 정의하고 해당 템플릿을 셀에 적용할 수 있습니다. 그러면 다른 데이터를 여러 행과 열을 포함하는 템플릿에 로드하여 카드 보기를 하나의 셀에 표시할 수 있습니다.
셀 유형이 셀 또는 셀 범위에 적용되면 범위 템플릿에서 셀 값을 데이터 소스로 사용하여 지정된 범위의 바인딩 경로를 확인합니다. 이 사용법은 다른 셀 유형에도 동일합니다.
.NET 도움말 | Java 도움말 | .NET 데모 | Java 데모
CheckboxList 및 RadioButtonList 셀 유형에 사용자 정의 객체 적용
Checkboxlist 및 RadioButtonlist에서 사용자는 목록에서 여러 항목을 선택할 수 있는 기능이 필요합니다. 이제 CheckboxList 및 RadioButtonList 셀 유형에 사용자 정의 객체를 적용하여 여러 옵션을 선택할 수 있습니다.
참고: 이 결과는 PDF 내보내기에서만 표시됩니다.
.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 데모(사용자 정의 객체를 범위로 설정) | .NET 데모(사용자 정의 함수에서 사용자 정의 객체 설정)
Java 데모 .NET 데모(사용자 정의 객체를 범위로 설정) | Java 데모(사용자 정의 함수에서 사용자 정의 객체 설정)
* GcExcel에서 지원되는 SpreadJS 기능 목록 보기