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

Java 앱에 Excel XLSX API 라이브러리, GcExcel을 추가하는 방법 > 온라인 스터디

본문 바로가기

Java & Kotlin API

온라인 스터디

Java 앱에 Excel XLSX API 라이브러리, GcExcel을 추가하는 방법

페이지 정보

작성자 GrapeCity 작성일 2023-07-11 14:20 조회 112회 댓글 0건

본문

이번 스터디에서는 GcExcel Java로 가상의 시나리오를 만들어 라이브러리의 기능에 기초적인 설명을 하고자 합니다.


Microsoft Excel에 종속되지 않고, GcExcel Java를 사용하여 Microsoft Excel XLSX 파일에서 간단한 예산을 설정하는 방법을 보여줍니다.


  1. 프로젝트 준비

  2. 네임스페이스 추가 및 통합 문서 만들기

  3. 데이터 초기화 및 표 만들기

  4. 표 만들기, 수식 적용, 행 높이 및 열 너비 설정

  5. 스타일 및 테두리 적용

  6. 조건부 서식 추가

  7. 피벗 테이블 추가

  8. 차트 추가

  9. .XLSX 파일에 결과 저장



 

프로젝트 준비 

프로젝트 준비
  • JDK 8 이상 버전이 설치되어 있어야 합니다.

  • IntelliJ IDEA 또는 Eclipse와 같은 선호하는 Java IDE로 Java 콘솔 응용 프로그램을 만듭니다.

  • IntelliJ 또는 Eclipse 콘솔 응용 프로그램:

    • Maven 또는 Github에서 GcExcel jar 패키지를 다운로드합니다.

    • gcexcel-x.x.x.jar를 프로젝트 라이브러리 폴더에 복사하고 종속성 라이브러리로 추가합니다.

  • Gradle 프로젝트:
    • build.gradle를 열고 종속성 블럭에 아래 스크립트를 추가합니다. 여기서 "x.x.x"는 GcExcel Java jar 패키지의 실제 버전으로 바꿉니다. compile("com.grapecity.documents:gcexcel:x.x.x")

  • Maven 프로젝트:

    • pom.xml을 열고 종속성 노드에 아래 XML 요소를 추가합니다. 여기서 "x.x.x"는 GcExcel Java jar 패키지의 실제 버전으로 바꿉니다.

      <dependency>
        <groupId>com.grapecity.documents</groupId>
        <artifactId>gcexcel</artifactId>
        <version>x.x.x</version>
      </dependency>

이 샘플에서는 외부 패키지를 사용하지 않습니다. 
 

기능을 사용할 때 필요한 특정 기능 및 연결된 패키지 종속성의 전체 목록은 이 도움말 항목을 참조하십시오.



네임스페이스 추가 및 통합 문서 만들기 


main.java를 열고 상단에 다음 네임스페이스를 추가합니다.


Java

import com.grapecity.documents.excel.*;
import com.grapecity.documents.excel.drawing.*;
import java.util.*;


Kotlin

import com.grapecity.documents.excel.*
import com.grapecity.documents.excel.drawing.*
import java.util.*다음 코드를 


 
다음 코드를 기본 함수에 추가하여 통합 문서 개체를 만듭니다.


Java 

Workbook workbook = new Workbook();


Kotlin

var workbook = new Workbook()



데이터 초기화 및 표 만들기  


GcExcel에서 데이터를 초기화하려면 2차원 배열을 준비하고 이를 워크시트 범위에 할당합니다.


Java

Object[][] sourceData = new Object[][]{
        {"ITEM", "AMOUNT"},
        {"Income 1", 2500},
        {"Income 2", 1000},
        {"Income 3", 250},
        {"Other", 250},
};

Object[][] sourceData1 = new Object[][]{
        {"ITEM", "AMOUNT"},
        {"Rent/mortgage", 800},
        {"Electricity", 120},
        {"Gas", 50},
        {"Cell phone", 45},
        {"Groceries", 500},
        {"Car payment", 273},
        {"Auto expenses", 120},
        {"Student loans", 50},
        {"Credit cards", 100},
        {"Auto insurance", 78},
        {"Personal care", 50},
        {"Entertainment", 100},
        {"Miscellaneous", 50},
};

IWorksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getRange("B3:C7").setValue(sourceData);
worksheet.getRange("B10:C23").setValue(sourceData1);
worksheet.setName("Tables");

worksheet.getRange("B2:C2").merge();
worksheet.getRange("B2").setValue("MONTHLY INCOME");
worksheet.getRange("B9:C9").merge();
worksheet.getRange("B9").setValue("MONTHLY EXPENSES");
worksheet.getRange("E2:G2").merge();
worksheet.getRange("E2").setValue("PERCENTAGE OF INCOME SPENT");
worksheet.getRange("E5:G5").merge();
worksheet.getRange("E5").setValue("SUMMARY");
worksheet.getRange("E3:F3").merge();
worksheet.getRange("E9").setValue("BALANCE");
worksheet.getRange("E6").setValue("Total Monthly Income");
worksheet.getRange("E7").setValue("Total Monthly Expenses");


Kotlin

var sourceData = arrayOf(
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("Income 1", 2500),
        arrayOf<Any>("Income 2", 1000),
        arrayOf<Any>("Income 3", 250),
        arrayOf<Any>("Other", 250)
)

var sourceData1 = arrayOf(
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT"),
        arrayOf<Any>("ITEM", "AMOUNT")
)

val worksheet: IWorksheet = workbook.getWorksheets().get(0)
worksheet.getRange("B3:C7").setValue(sourceData)
worksheet.getRange("B10:C23").setValue(sourceData1)
worksheet.setName("Tables")

worksheet.getRange("B2:C2").merge()
worksheet.getRange("B2").setValue("MONTHLY INCOME")
worksheet.getRange("B9:C9").merge()
worksheet.getRange("B9").setValue("MONTHLY EXPENSES")
worksheet.getRange("E2:G2").merge()
worksheet.getRange("E2").setValue("PERCENTAGE OF INCOME SPENT")
worksheet.getRange("E5:G5").merge()
worksheet.getRange("E5").setValue("SUMMARY")
worksheet.getRange("E3:F3").merge()
worksheet.getRange("E9").setValue("BALANCE")
worksheet.getRange("E6").setValue("Total Monthly Income")
worksheet.getRange("E7").setValue("Total Monthly Expenses")



표 만들기, 수식 적용, 행 높이 및 열 너비 설정  


다음 코드를 추가하여 IncomeExpenses, 두 개의 표를 만들고, 각 표에 기본 제공 스타일을 적용한 다음, 사용자 정의 이름 *TotalMonthlyIncome**TotalMonthlyExpenses*, 셀 수식, 행 높이 및 열 너비를 설정합니다.


Java

// Create the first table to show Income
ITable incomeTable = worksheet.getTables().add(worksheet.getRange("B3:C7"), true);
incomeTable.setName("tblIncome");
incomeTable.setTableStyle(workbook.getTableStyles().get("TableStyleMedium4"));
​
// Create the second table to show Expenses
ITable expensesTable = worksheet.getTables().add(worksheet.getRange("B10:C23"), true);
expensesTable.setName("tblExpenses");
expensesTable.setTableStyle(workbook.getTableStyles().get("TableStyleMedium4"));
​
worksheet.getNames().add("TotalMonthlyIncome", "=SUM(tblIncome[AMOUNT])");
worksheet.getNames().add("TotalMonthlyExpenses", "=SUM(tblExpenses[AMOUNT])");
​
worksheet.getRange("E3").setFormula("=TotalMonthlyExpenses");
worksheet.getRange("G3").setFormula("=TotalMonthlyExpenses/TotalMonthlyIncome");
worksheet.getRange("G6").setFormula("=TotalMonthlyIncome");
worksheet.getRange("G7").setFormula("=TotalMonthlyExpenses");
worksheet.getRange("G9").setFormula("=TotalMonthlyIncome-TotalMonthlyExpenses");
​
worksheet.setStandardHeight(26.25);
worksheet.setStandardWidth(8.43);
​
worksheet.getRange("2:24").setRowHeight(27);
worksheet.getRange("A:A").setColumnWidth(2.855);
worksheet.getRange("B:B").setColumnWidth(33.285);
worksheet.getRange("C:C").setColumnWidth(25.57);
worksheet.getRange("D:D").setColumnWidth(1);
worksheet.getRange("E:F").setColumnWidth(25.57);
worksheet.getRange("G:G").setColumnWidth(14.285);


Kotlin

// Create the first table to show Income
val incomeTable: ITable = worksheet.getTables().add(worksheet.getRange("B3:C7"), true)
incomeTable.setName("tblIncome")
incomeTable.setTableStyle(workbook.getTableStyles().get("TableStyleMedium4"))
​
// Create the second table to show Expenses
val expensesTable: ITable = worksheet.getTables().add(worksheet.getRange("B10:C23"), true)
expensesTable.setName("tblExpenses")
expensesTable.setTableStyle(workbook.getTableStyles().get("TableStyleMedium4"))
​
worksheet.getNames().add("TotalMonthlyIncome", "=SUM(tblIncome[AMOUNT])")
worksheet.getNames().add("TotalMonthlyExpenses", "=SUM(tblExpenses[AMOUNT])")
​
worksheet.getRange("E3").setFormula("=TotalMonthlyExpenses")
worksheet.getRange("G3").setFormula("=TotalMonthlyExpenses/TotalMonthlyIncome")
worksheet.getRange("G6").setFormula("=TotalMonthlyIncome")
worksheet.getRange("G7").setFormula("=TotalMonthlyExpenses")
worksheet.getRange("G9").setFormula("=TotalMonthlyIncome-TotalMonthlyExpenses")
​
worksheet.setStandardHeight(26.25)
worksheet.setStandardWidth(8.43)
​
worksheet.getRange("2:24").setRowHeight(27)
worksheet.getRange("A:A").setColumnWidth(2.855)
worksheet.getRange("B:B").setColumnWidth(33.285)
worksheet.getRange("C:C").setColumnWidth(25.57)
worksheet.getRange("D:D").setColumnWidth(1)
worksheet.getRange("E:F").setColumnWidth(25.57)
worksheet.getRange("G:G").setColumnWidth(14.285)



스타일 및 테두리 적용  


GcExcel Java API는 각 요소에 직접 범위 스타일의 변경 사항을 적용하거나, 기본 제공된 스타일을 사용하거나, 사용자 정의된 스타일을 사용할 수 있습니다. 사용자 정의된 스타일을 사용하면 초기화할 기본 제공 스타일을 하나 이상 복사합니다. 다음으로 개별 스타일 속성을 설정하여 스타일을 사용자 정의하고 여러 범위의 스타일을 재정의하여 메모리를 최적화할 수 있습니다.


기본 제공 정의 스타일도 사용자 정의할 수 있습니다. - 이번 예시에서는 기본 제공 Currency, Heading 1,Percent 스타일을 수정하는 방법을 보여 줍니다. 통합 문서에서 해당 기본 제공 스타일을 사용하는 모든 셀에 영향을 미치며, 통합 문서와 함께 .XLSX에 저장됩니다. 


Java

IStyle currencyStyle = workbook.getStyles().get("Currency");
currencyStyle.setIncludeAlignment(true);
currencyStyle.setHorizontalAlignment(HorizontalAlignment.Left);
currencyStyle.setVerticalAlignment(VerticalAlignment.Bottom);
currencyStyle.setNumberFormat("$#,##0.00");
IStyle heading1Style = workbook.getStyles().get("Heading 1");
heading1Style.setIncludeAlignment(true);
heading1Style.setHorizontalAlignment(HorizontalAlignment.Center);
heading1Style.setVerticalAlignment(VerticalAlignment.Center);
heading1Style.setIncludeFont(true);
heading1Style.getFont().setName("Century Gothic");
heading1Style.getFont().setBold(true);
heading1Style.getFont().setSize(11);
heading1Style.getFont().setColor(Color.GetWhite());
heading1Style.setIncludeBorder(false);
heading1Style.setIncludePatterns(true);
heading1Style.getInterior().setColor(Color.FromArgb(255, 32, 61, 64));
IStyle percentStyle = workbook.getStyles().get("Percent");
percentStyle.setIncludeAlignment(true);
percentStyle.setHorizontalAlignment(HorizontalAlignment.Center);
percentStyle.setIncludeFont(true);
percentStyle.getFont().setColor(Color.FromArgb(255, 32, 61, 64));
percentStyle.getFont().setName("Century Gothic");
percentStyle.getFont().setBold(true);
percentStyle.getFont().setSize(14);
worksheet.getSheetView().setDisplayGridlines(false);
worksheet.getRange("C4:C7, C11:C23, G6:G7, G9").setStyle(currencyStyle);
worksheet.getRange("B2, B9, E2, E5").setStyle(heading1Style);
worksheet.getRange("G3").setStyle(percentStyle);
worksheet.getRange("E6:G6").getBorders().get(BordersIndex.EdgeBottom).setLineStyle(BorderLineStyle.Medium);
worksheet.getRange("E6:G6").getBorders().get(BordersIndex.EdgeBottom).setColor(Color.FromArgb(255,32, 61, 64));
worksheet.getRange("E7:G7").getBorders().get(BordersIndex.EdgeBottom).setLineStyle(BorderLineStyle.Medium);
worksheet.getRange("E7:G7").getBorders().get(BordersIndex.EdgeBottom).setColor(Color.FromArgb(255,32,61,64));
worksheet.getRange("E9:G9").getInterior().setColor(Color.FromArgb(255,32,61,64));
worksheet.getRange("E9:G9").setHorizontalAlignment(HorizontalAlignment.Left);
worksheet.getRange("E9:G9").setVerticalAlignment(VerticalAlignment.Center);
worksheet.getRange("E9:G9").getFont().setName("Century Gothic");
worksheet.getRange("E9:G9").getFont().setBold(true);
worksheet.getRange("E9:G9").getFont().setSize(11);
worksheet.getRange("E9:G9").getFont().setColor(Color.GetWhite());
worksheet.getRange("E3:F3").getBorders().setColor(Color.FromArgb(255,32,61,64));


Kotlin

val currencyStyle: IStyle = workbook.styles.get("Currency")
currencyStyle.includeAlignment = true
currencyStyle.horizontalAlignment = HorizontalAlignment.Left
currencyStyle.verticalAlignment = VerticalAlignment.Bottom
currencyStyle.numberFormat = "$#,##0.00"
val heading1Style: IStyle = workbook.styles.get("Heading 1")
heading1Style.includeAlignment = true
heading1Style.horizontalAlignment = HorizontalAlignment.Center
heading1Style.verticalAlignment = VerticalAlignment.Center
heading1Style.includeFont = true
heading1Style.font.name = "Century Gothic"
heading1Style.font.bold = true heading1Style.font.size = 11.0
heading1Style.font.color = Color.GetWhite()
heading1Style.includeBorder = false
heading1Style.includePatterns = true
heading1Style.interior.color = Color.FromArgb(255, 32, 61, 64)
val percentStyle: IStyle = workbook.styles.get("Percent")
percentStyle.includeAlignment = true
percentStyle.horizontalAlignment = HorizontalAlignment.Center
percentStyle.includeFont = true
percentStyle.font.color = Color.FromArgb(255, 32, 61, 64)
percentStyle.font.name = "Century Gothic"
percentStyle.font.bold = true percentStyle.font.size = 14.0
worksheet.getSheetView().setDisplayGridlines(false)
worksheet.getRange("C4:C7, C11:C23, G6:G7, G9").style = currencyStyle
worksheet.getRange("B2, B9, E2, E5").style = heading1Style
worksheet.getRange("G3").style = percentStyle
worksheet.getRange("E6:G6").borders.get(BordersIndex.EdgeBottom).lineStyle = BorderLineStyle.Medium
worksheet.getRange("E6:G6").borders.get(BordersIndex.EdgeBottom).color = Color.FromArgb(255, 32, 61, 64)
worksheet.getRange("E7:G7").borders.get(BordersIndex.EdgeBottom).lineStyle = BorderLineStyle.Medium
worksheet.getRange("E7:G7").borders.get(BordersIndex.EdgeBottom).color = Color.FromArgb(255, 32, 61, 64)
worksheet.getRange("E9:G9").interior.color = Color.FromArgb(255, 32, 61, 64)
worksheet.getRange("E9:G9").horizontalAlignment = HorizontalAlignment.Left
worksheet.getRange("E9:G9").verticalAlignment = VerticalAlignment.Center
worksheet.getRange("E9:G9").font.name = "Century Gothic"
worksheet.getRange("E9:G9").font.bold = true
worksheet.getRange("E9:G9").font.size = 11.0
worksheet.getRange("E9:G9").font.color = Color.GetWhite()
worksheet.getRange("E3:F3").borders.color = Color.FromArgb(255, 32, 61, 64)



조건부 서식 추가  


GcExcel Java API는 모든 유형의 조건부 서식 규칙을 지원합니다. 이 예시에는 데이터 막대 규칙을 만들어, 값을 표시하지 않고 지출된 수입의 비율을 보여줍니다.


Java

IDataBar dataBar = worksheet.getRange("E3").getFormatConditions().addDatabar();
dataBar.getMinPoint().setType(ConditionValueTypes.Number);
dataBar.getMinPoint().setValue(1);
dataBar.getMaxPoint().setType(ConditionValueTypes.Number);
dataBar.getMaxPoint().setValue("=TotalMonthlyIncome");
dataBar.setBarFillType(DataBarFillType.Gradient);
dataBar.getBarColor().setColor(Color.GetRed());
dataBar.setShowValue(false);


Kotlin

val dataBar: IDataBar = worksheet.getRange("E3").getFormatConditions().addDatabar()
dataBar.getMinPoint().setType(ConditionValueTypes.Number)
dataBar.getMinPoint().setValue(1)
dataBar.getMaxPoint().setType(ConditionValueTypes.Number)
dataBar.getMaxPoint().setValue("=TotalMonthlyIncome")
dataBar.setBarFillType(DataBarFillType.Gradient)
dataBar.getBarColor().setColor(Color.GetRed())
dataBar.setShowValue(false)



피벗 테이블 추가  


GcExcel Java API는 복잡한 데이터 분석을 위해 신속한 집계 및 소개를 활성화하는 피벗 테이블을 지원합니다. 이번 예시에서는 새 워크시트를 만들고 워크시트에서 일정 범위의 데이터를 참조하는 새 피벗 테이블을 만듭니다.


Java

// add a new worksheet and create a pivot table in it
IWorksheet worksheet2 = workbook.getWorksheets().add();
worksheet2.setName("Pivot Table");
​
sourceData = new Object[][]{
      {"Order ID", "Product", "Category", "Amount", "Date", "Country"},
      {1, "Carrots", "Vegetables", 4270, new GregorianCalendar(2022, 9, 6), "United States"},
      {2, "Broccoli", "Vegetables", 8239, new GregorianCalendar(2022, 8, 7), "United States"},
      {3, "Banana", "Fruit", 617, new GregorianCalendar(2022, 10, 18), "United States"},
      {4, "Banana", "Fruit", 8384, new GregorianCalendar(2022, 11, 10), "Canada"},
      {5, "Beans", "Vegetables", 2626, new GregorianCalendar(2022, 10, 10), "Germany" },
      {6, "Orange", "Fruit", 3610, new GregorianCalendar(2022, 11, 11), "United States"},
      {7, "Broccoli", "Vegetables", 9062, new GregorianCalendar(2022, 10, 11), "Australia"},
      {8, "Banana", "Fruit", 6906, new GregorianCalendar(2022, 10, 16), "New Zealand"},
      {9, "Apple", "Fruit", 2417, new GregorianCalendar(2022,11,16), "France"},
      {10, "Apple", "Fruit", 7431, new GregorianCalendar(2022, 11, 16), "Canada"},
      {11, "Banana", "Fruit", 8250, new GregorianCalendar(2022, 10, 16), "Germany"},
      {12, "Broccoli", "Vegetables", 7012, new GregorianCalendar(2022, 10, 18), "United States"},
      {13, "Carrots", "Vegetables", 1903, new GregorianCalendar(2022, 11, 20), "Germany"},
      {14, "Broccoli", "Vegetables", 2824, new GregorianCalendar(2022, 9, 24), "Canada"},
      {15, "Apple", "Fruit", 6946, new GregorianCalendar(2022, 11, 24), "France"},
};
​
worksheet2.getRange("A1:F16").setValue(sourceData);
worksheet2.getRange("A:F").setColumnWidth(15);
​
IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet2.getRange("A1:F16"));
IPivotTable pivotTable = worksheet2.getPivotTables().add(pivotCache, worksheet2.getRange("H7"), "pivotTable1");


Kotlin

// add a new worksheet and create a pivot table in it
val worksheet2: IWorksheet = workbook.getWorksheets().add()
worksheet2.setName("Pivot Table")
​
sourceData = arrayOf(
       arrayOf("Order ID", "Product", "Category", "Amount", "Date", "Country"),
       arrayOf(1, "Carrots", "Vegetables", 4270, new GregorianCalendar(2022, 9, 6), "United States"),
       arrayOf(2, "Broccoli", "Vegetables", 8239, new GregorianCalendar(2022, 8, 7), "United States"),
       arrayOf(3, "Banana", "Fruit", 617, new GregorianCalendar(2022, 10, 18), "United States"),
       arrayOf(4, "Banana", "Fruit", 8384, new GregorianCalendar(2022, 11, 10), "Canada"),
       arrayOf(5, "Beans", "Vegetables", 2626, new GregorianCalendar(2022, 10, 10), "Germany"),
       arrayOf(6, "Orange", "Fruit", 3610, new GregorianCalendar(2022, 11, 11), "United States"),
       arrayOf(7, "Broccoli", "Vegetables", 9062, new GregorianCalendar(2022, 10, 11), "Australia"),
       arrayOf(8, "Banana", "Fruit", 6906, new GregorianCalendar(2022, 10, 16), "New Zealand"),
       arrayOf(9, "Apple", "Fruit", 2417, new GregorianCalendar(2022,11,16), "France"),
       arrayOf(10, "Apple", "Fruit", 7431, new GregorianCalendar(2022, 11, 16), "Canada"),
       arrayOf(11, "Banana", "Fruit", 8250, new GregorianCalendar(2022, 10, 16), "Germany"),
       arrayOf(12, "Broccoli", "Vegetables", 7012, new GregorianCalendar(2022, 10, 18), "United States"),
       arrayOf(13, "Carrots", "Vegetables", 1903, new GregorianCalendar(2022, 11, 20), "Germany"),
       arrayOf(14, "Broccoli", "Vegetables", 2824, new GregorianCalendar(2022, 9, 24), "Canada"),
       arrayOf(15, "Apple", "Fruit", 6946, new GregorianCalendar(2022, 11, 24), "France")
)
​
worksheet2.getRange("A1:F16").setValue(sourceData)
worksheet2.getRange("A:F").setColumnWidth(15)
​
IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet2.getRange("A1:F16"))
IPivotTable pivotTable = worksheet2.getPivotTables().add(pivotCache, worksheet2.getRange("H7"), "pivotTable1")


피벗 테이블 레이아웃을 구성하려면 행 필드, 열 필드, 데이터 필드 및 페이지 필드를 지정합니다.

Java

// configure pivot table's fields
IPivotField fieldCategory = pivotTable.getPivotFields().get("Category");
fieldCategory.setOrientation(PivotFieldOrientation.RowField);
​
IPivotField fieldProduct = pivotTable.getPivotFields().get("Product");
fieldProduct.setOrientation(PivotFieldOrientation.ColumnField);
​
IPivotField fieldAmount = pivotTable.getPivotFields().get("Amount");
fieldAmount.setOrientation(PivotFieldOrientation.DataField);
fieldAmount.setNumberFormat("$#,##0");
​
IPivotField fieldCountry = pivotTable.getPivotFields().get("Country");
fieldCountry.setOrientation(PivotFieldOrientation.PageField);


Kotlin

// configure pivot table's fields
val fieldCategory: IPivotField = pivotTable.getPivotFields().get("Category")
fieldCategory.setOrientation(PivotFieldOrientation.RowField)
​
val fieldProduct: IPivotField = pivotTable.getPivotFields().get("Product")
fieldProduct.setOrientation(PivotFieldOrientation.ColumnField)
​
val fieldAmount: IPivotField = pivotTable.getPivotFields().get("Amount")
fieldAmount.setOrientation(PivotFieldOrientation.DataField)
fieldAmount.setNumberFormat("$#,##0")
​
val fieldCountry: IPivotField = pivotTable.getPivotFields().get("Country")
fieldCountry.setOrientation(PivotFieldOrientation.PageField)



차트 추가  


GcExcel Java API는 다양한 종류의 데이터를 시각화하기 위한 많은 차트 유형을 지원합니다. 이 예에서는 새 워크시트를 만든 다음, 워크시트에서 일정 범위의 데이터를 참조하는 새 차트를 만듭니다.


Java

// add a new sheet and create a chart in it
IWorksheet worksheet3 = workbook.getWorksheets().add();
worksheet3.setName("Chart");
​
IShape shape = worksheet3.getShapes().addChart(ChartType.ColumnClustered, 300, 10, 300, 300);
​
shape.getChart().getChartTitle().setText("Sales Increases Over Previous Quarter");
​
worksheet3.getRange("A1:D6").setValue(new Object[][]{
      {null, "Q1", "Q2", "Q3"},
      {"Belgium", 10, 25, 25},
      {"France", -51, -36, 27},
      {"Greece", 52, -85, -30},
      {"Italy", 22, 65, 65},
      {"UK", 23, 69, 69},
});
​
shape.getChart().getSeriesCollection().add(worksheet3.getRange("A1:D6"), RowCol.Columns, true, true);
​
worksheet3.getRange("B1:D1").setHorizontalAlignment(HorizontalAlignment.Right);
worksheet3.getRange("B1:D1").getFont().setBold(true);
worksheet3.getRange("B2:D6").setNumberFormat("€#,##0");
​
IAxis valueAxis = shape.getChart().getAxes().item(AxisType.Value);
valueAxis.getTickLabels().setNumberFormat("€#,##0");


Kotlin

// add a new sheet and create a chart in it
val worksheet3: IWorksheet = workbook.getWorksheets().add()
worksheet3.setName("Chart")
​
val shape: IShape = worksheet3.getShapes().addChart(ChartType.ColumnClustered, 300, 10, 300, 300)
​
shape.getChart().getChartTitle().setText("Sales Increases Over Previous Quarter")
​
worksheet3.getRange("A1:D6").setValue(arrayOf<Array<Any>>(
       arrayOf<Any>(null, "Q1", "Q2", "Q3"),
       arrayOf<Any>("Belgium", 10, 25, 25),
       arrayOf<Any>("France", -51, -36, 27),
       arrayOf<Any>("Greece", 52, -85, -30),
       arrayOf<Any>("Italy", 22, 65, 65),
       arrayOf<Any>("UK", 23, 69, 69)
)
​
shape.getChart().getSeriesCollection().add(worksheet3.getRange("A1:D6"), RowCol.Columns, true, true)
​
worksheet3.getRange("B1:D1").setHorizontalAlignment(HorizontalAlignment.Right)
worksheet3.getRange("B1:D1").getFont().setBold(true)
worksheet3.getRange("B2:D6").setNumberFormat("€#,##0")
​
val valueAxis: IAxis = shape.getChart().getAxes().item(AxisType.Value)
valueAxis.getTickLabels().setNumberFormat("€#,##0")



.XLSX 파일에 결과 저장  


변경 사항이 완료된 후, IWorkbook.save 메서드를 사용하여 새 .XLSX 파일에 결과 통합 문서를 저장합니다.


Java

workbook.save("GcExcelFeatures.xlsx");


Kotlin

workbook.save("GcExcelFeatures.xlsx")


프로젝트를 실행하면 프로젝트 폴더에 GcExcelFeatures.XLSX 파일이 생성됩니다.

GcExcelFeatures.xlsx


이번 스터디에서 사용한 샘플을 다운로드하려면 여기를 클릭하세요!




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

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

댓글목록

등록된 댓글이 없습니다.

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

태그1

인기글

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