C# .NET 및 Java에서 GcExcel Spreadsheet API를 사용하는 팁과 요령
페이지 정보
작성자 GrapeCity 작성일 2022-07-29 14:47 조회 370회 댓글 0건본문
관련링크
웹에 있는 대부분의 데이터는 행과 열로 배열되어 있으며 Excel 스프레드시트는 데이터 저장, 분석, 계산, 정렬 및 배열에 가장 흔히 사용되는 친숙한 방법입니다. , , 및 등을 빠른 속도로 처리할 수 있는 솔루션을 찾고 있다면 기본적인 웹 앱보다 강력한 기능이 필요할 것입니다. GcExcel( & )은 시스템에 미치는 부담이 적고 속도가 빠른 API로, 대부분의 Excel 기능을 지원하며 Windows, Mac, Linux, 클라우드에서 솔루션을 배포할 수 있습니다.
이 문서에서는 Excel 스프레드시트를 사용하여 프로그래밍 방식으로 작업하는 경우 더욱 빠르고 효율적인 실행을 위해 GcExcel을 사용하는 몇 가지 팁과 요령을 볼 수 있습니다.
특정 범위의 데이터만 가져오기
일반적으로 Excel 파일에서 모든 데이터를 추출하지 않고 특정 데이터만 추출하는 경우가 많습니다. 따라서 Excel API에서 Excel 파일 전체를 로드하려는 경우 프로세스가 지루하고 시간이 많이 소요될 수 있습니다. GcExcel에서는 전체 객체 모델을 로드하지 않고도 Excel 파일에서 데이터만 가져오는 새로운 메서드가 추가되었습니다.
이 함수를 사용하면 여러 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")
통합 문서에서 데이터만 가져오는 경우 메서드는 Open 메서드보다 네 배 더 빠릅니다.
워크시트 또는 표 이름을 모르는 상태에서 ImportData 메서드 사용
사용자는 특정 워크시트 이름 또는 표 이름이 아닌 가져올 통합 문서 경로만 알고 있을 수 있습니다. 이러한 상황에서는 지정된 소스에서 함수 가져오기 데이터를 사용할 수 있습니다.
소스는 시트 이름, 표 이름 또는 범위 이름이 될 수 있으며 인터페이스 에서 가져올 수 있고 모든 워크시트, 표의 이름 및 범위 참조에 평가되는 정의된 이름을 포함하여 이름 배열을 반환합니다.
다음 예에서는 GetNames 메서드에서 소스 이름을 사용하여 Excel 파일에서 표 데이터를 가져옵니다.
//create a new workbook var workbook = new GrapeCity.Documents.Excel.Workbook(); // Open an excel file. var fileStream = GetResourceStream("xlsx\\AgingReport.xlsx"); // Get the possible import names in the file. // The names[0] and names[1] are sheet names: "Aging Report", "Invoices". // The names[2] and names[3] are table names: "'Aging Report'!tblAging", "Invoices!tblInvoices". var names = GrapeCity.Documents.Excel.Workbook.GetNames(fileStream); // Import the data of a table "'Aging Report'!tblAging" from the fileStream. var data = GrapeCity.Documents.Excel.Workbook.ImportData(fileStream, names[2]); // Assign the data to current workbook. workbook.Worksheets[0].Range[0, 0, data.GetLength(0), data.GetLength(1)].Value = data; // Save to an excel file workbook.Save("importdatafortable.xlsx");
| | |
데이터 가져오기 - 대체 방식
스타일, 데이터, 도형 등과 같이 가져올 특정 데이터를 안다고 가정하며 열거를 메서드와 함께 사용할 수 있습니다.
var workbook = new GrapeCity.Documents.Excel.Workbook(); //Use XlsxOpenOptions.ImportFlags to control what you want to import from excel, ImportFlags.Data means only the data will be imported //Change the path to the real file path when open. XlsxOpenOptions options = new XlsxOpenOptions { ImportFlags = ImportFlags.Data }; workbook.Open("source.xlsx", options);
| | |
사용된 범위 가져오기
Excel 시트에서 사용된 셀을 찾고 싶을 수 있습니다. 예를 들어 사용된 범위에 있지 않은 셀 위치의 Excel 파일에서 데이터를 삽입하려고 할 수 있습니다. 이러한 경우 워크시트에서 사용된 범위를 반환할 수 있는 API가 있는 것이 유용합니다. GcExcel을 통해 메서드를 사용하고 열거별로 Data, DataValidation, Hyperlink, Sparkline 등과 같은 특정 데이터를 가져올 수 있습니다.
worksheet.Range["A2:C3"].Interior.Color = Color.Green; //style used range is A2:C3. var UsedRange_style = worksheet.GetUsedRange(UsedRangeType.Style); UsedRange_style.Interior.Color = Color.LightBlue;
| | |
셀의 주소를 가져오기 위해 범위 주소 가져오기
일반적으로 셀의 주소를 가져오려면 코드를 작성해야 합니다. 예를 들어 다음과 같습니다.
worksheet.Cells[2, 3].ToString().Substring(7, 4);
하지만 GcExcel에는 셀의 주소에 액세스할 수 있는 직접적인 메서드가 있습니다. 절대 A1 형식으로 범위 참조를 표시하는 문자열 값을 얻으려면 속성을 사용합니다. 행 또는 열에 대한 절대 또는 상대 참조를 선택하거나 참조 스타일을 A1 또는 R1C1로 표시하는 를 통해 매개 변수를 제공하는 옵션도 있습니다. row/col 2,2에 상대적인 셀 주소를 가져오는 다음 코드를 확인하십시오.
//create a new workbook var workbook = new GrapeCity.Documents.Excel.Workbook(); var mc = workbook.Worksheets['Sheet1'].Cells[0, 0]; Console.WriteLine(mc.Address); // $A$1 Console.WriteLine(mc.GetAddress(rowAbsolute: false)); // $A1 Console.WriteLine(mc.GetAddress(referenceStyle: ReferenceStyle.R1C1)); // R1C1 Console.WriteLine(mc.GetAddress(referenceStyle: ReferenceStyle.R1C1, rowAbsolute: false, columnAbsolute: false, relativeTo: workbook.Worksheets[0].Cells[2, 2])); // R[-2]C[-2]
| | |
값을 설정할 때 계산 엔진 성능 향상
GcExcel에서는 부울 속성을 제공합니다. 셀 값을 변경하고 Workbook.DeferUpdateDirtyState =True를 설정하면 GcExcel에서 수식 셀 수정 상태를 즉시 업데이트하지 않습니다. 따라서 Excel 파일에서 값을 설정할 때 계산 엔진의 성능이 개선됩니다.
|
표시 형식 가져오기
속성을 사용하여 셀의 표시 스타일을 가져올 수 있습니다. 셀의 표시 스타일은 셀이 표에 있으면 스타일 또는 표 스타일에서 생길 수 있으며 셀이 조건과 일치하면 조건부 서식에서 생길 수 있습니다. 현재 사용자 인터페이스에 표시되므로 값을 반환하려면 DisplayFormat 객체의 속성을 사용합니다. 다음 코드는 셀을 비워둘 수 없는 조건부 서식 조건으로 DisplayFormat.Interior.Color를 A1 셀로 설정합니다.
//create a new workbook var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; //Range A1's displaying color is table style worksheet.Tables.Add(worksheet.Range["A1:E5"], true); var color_A1 = worksheet.Range["A1"].DisplayFormat.Interior.Color; //Range A1's displaying color will be cell style, yellow. worksheet.Range["A1"].Interior.Color = Color.Yellow; var color_A1_1 = worksheet.Range["A1"].DisplayFormat.Interior.Color; //Range A1's displaying color will be conditional format style, green. IFormatCondition condition = worksheet.Range["A1"].FormatConditions.Add(FormatConditionType.NoBlanksCondition) as IFormatCondition; condition.Interior.Color = Color.Green; var color_A1_2 = worksheet.Range["A1"].DisplayFormat.Interior.Color; // Save to an excel file workbook.Save("getdisplayformat.xlsx");
| | |
특수 셀 가져오기
특수 셀 범위는 특정 데이터 유형 또는 값을 포함하는 범위를 참조합니다. 이는 주석, 텍스트 값, 수식, 공백, 상수, 숫자 등을 포함하는 셀이 될 수 있습니다. GcExcel에서 가장 유익한 메서드 중 하나는 메서드입니다. 사용하는 경우 지정한 이러한 유형의 셀만 표시하는 범위를 반환합니다. 예를 들면, SpecialCells 메서드를 사용하여 수식만 포함하는 범위를 반환할 수 있습니다.
GcExcel을 통해 IRange 인터페이스의 메서드를 사용하여 특수 셀 범위를 가져올 수 있습니다. 매개 변수로 다음 열거를 채택합니다.
수식, 상수, 공백 등과 같은 셀 유형 지정
숫자, 텍스트 값 등과 같은 특정 유형의 값으로 셀 지정
코드에 따라 수식 및 상수가 있는 모든 특수 셀을 찾고 이러한 셀에서 배경색을 설정합니다.
//create a new workbook var workbook = new GrapeCity.Documents.Excel.Workbook(); using (var existingFile = GetResourceStream("xlsx\\FinancialReport.xlsx")) { workbook.Open(existingFile); } IRange cells = workbook.ActiveSheet.Cells; // Find all formulas var allFormulas = cells.SpecialCells(SpecialCellType.Formulas); // Find all constants var allConstants = cells.SpecialCells(SpecialCellType.Constants); // Change background color of found cells allFormulas.Interior.Color = Color.LightGray; allConstants.Interior.Color = Color.LightBlue; // Save to an excel file workbook.Save("specialcellsinexistingfiles.xlsx");
| | |
숨겨진 행을 새 범위에 복사
숨겨진 특정 행을 원할 수 있습니다. 하지만 행을 다른 범위에 복사하면 이러한 숨겨진 행/열도 복사해야 합니다. GcExcel은 새 API 를 추가하여 숨겨진 행/열을 복사합니다. API에는 숨겨진 행/열의 데이터를 복사할지 여부를 제어할 추가 속성 가 포함됩니다.
추가 세부 정보 확인: | | |
참조되는 셀 및 참조하는 셀 모두 가져오기
Excel 스프레드시트에는 여러 수식이 포함되는 경우가 있습니다. 오류를 발생시키는 셀 또는 범위에 대한 계산 오류의 원인을 찾고 있는 경우 셀 간의 관계를 이해하는 것은 어려운 작업이 될 수 있습니다. 예를 들어 Excel 스프레드시트의 수식은 잘못된 값을 반환하거나 올바른 값을 가져오기 위해 수정해야 할 오류 메시지를 제공할 수도 있습니다. GcExcel을 사용하면 다른 셀에서 수식에서 직접 또는 간접으로 참조된 셀이나 범위를 반환하여 사용하기 쉬운 메서드를 제공함으로써 계산 오류를 프로그래밍 방식으로 감사하기가 더 쉬워집니다.
또한 셀 값이 수정되거나 계산이 수행되는 경우 영향을 받는 셀은 메서드에서 반환할 수 있습니다. 이 메서드는 다른 셀을 직접 또는 간접으로 참조하는 수식을 포함한 셀이나 범위를 반환합니다.
다음 코드는 E2에 적용된 수식의 참조되는 셀을 계산합니다.
//create a new workbook var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; worksheet.Range["E2"].Formula = "=sum(A1:A2, B4,C1:C3)"; worksheet.Range["A1"].Value = 1; worksheet.Range["A2"].Value = 2; worksheet.Range["B4"].Value = 3; worksheet.Range["C1"].Value = 4; worksheet.Range["C2"].Value = 5; worksheet.Range["C3"].Value = 6; foreach (var item in worksheet.Range["E2"].GetPrecedents()) { item.Interior.Color = Color.Pink; } // Save to an excel file workbook.Save("precedents.xlsx");
다음 코드는 수식으로 A1 셀을 참조하는 모든 직접 또는 간접 셀을 강조 표시합니다.
//create a new workbook var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; worksheet.Range["A1"].Value = 100; worksheet.Range["C1"].Formula = "=$A$1"; worksheet.Range["E1:E5"].Formula = "=$A$1"; foreach (var item in worksheet.Range["A1"].GetDependents()) { item.Interior.Color = Color.Azure; } // Save to an excel file workbook.Save("dependents.xlsx");
| | |
피벗 테이블에서 레이아웃 업데이트 지연
피벗 표 데이터 필드가 추가, 제거 또는 다른 위치로 이동할 때마다 전체 피벗 표가 다시 계산됩니다. 이 작업은 Excel 스프레드시트 생성의 전체 성능에 영향을 줍니다.
GcExcel은 속성을 추가합니다. 사용자가 업데이트 메서드를 호출하고 표를 업데이트할 때까지 피벗 표에 대한 업데이트를 지연합니다. 이 속성은 피벗 표를 포함한 Excel 스프레드시트의 생성을 더 자연스럽고 더 깔끔하게 만듭니다.
IWorksheet worksheet = workbook.Worksheets[0]; worksheet.Range["A1:F16"].Value = sourceData; worksheet.Range["A:F"].ColumnWidth = 15; var pivotcache = workbook.PivotCaches.Create(worksheet.Range["A1:F16"]); var pivottable = worksheet.PivotTables.Add(pivotcache, worksheet.Range["H7"], "pivottable1"); // defer layout update pivottable.DeferLayoutUpdate = true; //config pivot table's fields var field_Category = pivottable.PivotFields["Category"]; field_Category.Orientation = PivotFieldOrientation.RowField; var field_Product = pivottable.PivotFields["Product"]; field_Product.Orientation = PivotFieldOrientation.ColumnField; var field_Amount = pivottable.PivotFields["Amount"]; pivottable.AddDataField(field_Amount, "sum amount", ConsolidationFunction.Sum); // must update the pivottable.pivottable.Update(); //save to an excel file workbook.Save("PivotTable.xlsx");
| | |
행 및 열 그룹화 정보 가져오기
Excel에 길이가 긴 보고서가 있는 경우 더 관리하기 쉽게 만들고 싶을 수 있습니다. 워크시트에서 그룹을 확장하거나 축소하여 필요한 대로 특정 정보를 숨기거나 상세한 행/열만 보려고 할 수 있습니다. 하지만 Excel 워크시트에서 그룹화된 행이나 열을 프로그래밍 방식으로 가져온다고 가정해 보겠습니다. 이런 경우 워크시트를 열고 수동으로 하는 것보다 그룹을 쉽게 확장/축소하도록 지원할 수 있습니다. GcExcel API를 확인하여 및 목록 유형을 통해 행 및 열 그룹화 정보를 가져오십시오. 이 API의 도움으로 다음 기능을 달성할 수 있습니다.
현재 그룹의 시작 인덱스 가져오기
그룹의 최종 인덱스 가져오기
현재 그룹의 수준 가져오기
그룹을 축소할지 여부 확인
그룹의 상위 행/열 가져오기
그룹의 하위 행/열 가져오기
마지막으로 Expand() 또는 Collapse() 메서드는 행 또는 열을 확장하거나 축소하도록 도울 수 있습니다.
추가 세부 정보 확인: | | |
내보낸 JSON 파일의 크기 제어
JSON에 내보낸 경우 크기가 큰 파일을 제작하는 특정 Excel 파일이 있습니다. GcExcel을 사용하면 새 옵션을 통해 내보낸 JSON 파일의 크기를 제어할 수 있습니다. 이 옵션을 통해 사용된 범위에서 열 행 정보를 내보낼지 여부를 제어할 수 있으며 이는 내보낸 JSON 파일의 크기를 줄이는 데 도움이 됩니다. 이 기능은 GcExcel이 클라이언트 측 제품과 서버 측 API로 통합되는 경우에만 지원됩니다.
추가 세부 정보 확인: |
지금 바로 GcExcel .NET을 다운로드하여 직접 테스트해보세요!
지금 바로 GcExcel Java를 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.