이전 기사에서는 Microsoft 파일 형식으로 작업하기위한 오픈 소스 Java API 인 Apache POI의 세부 사항을 살펴 보았습니다. 이 기사에서는 Excel 통합 문서로 작업하기위한 Apache POI 구성 요소를 살펴 보겠습니다. 또한 Apache POI를 사용하여 Excel 파일을 만들고이 Java 라이브러리를 사용하여 시트를 추가하는 방법을 보여줍니다.

accel 파일 형식에 액세스하기위한 apache poi java apis

Apache Poi Java API는 두 가지 다른 Excel 파일 형식으로 작업하기위한 별도의 구성 요소를 제공합니다. 이것들은:

  1. hssf (끔찍한 스프레드 시트 형식)-Excel 97-2003 파일 형식으로 작업
  2. XSSF (XML 스프레드 시트 형식) - Excel 2007 이상의 파일 형식 작업을 위해 특히, hssf xls 파일을 읽을 수 있지만 xssfxlsxlsx 파일을 읽을 수 있습니다. 이 두 API를 사용하면 기본 파일 형식의 세부 사항을 사용하지 않고 Java 응용 프로그램 내에서 Excel 파일을 작성, 읽기 및 조작 할 수 있습니다.

Java에서 Excel XLSX 파일을 만드는 방법은 무엇입니까? {.WP- 블록 헤드}

이 예에서는 Apache POI XSSF를 사용하여 Java 응용 프로그램에서 XLSX 파일을 작성하는 세부 사항을 살펴 보겠습니다. 이 단계에서는 Java 응용 프로그램에 이미 Apache POI API를 설치하고 구성했다고 가정합니다. 그렇게하지 않은 경우 Java 용 Apache Poi 설치를 방문하여 단계를 따라갈 수 있습니다.

Apache Poi를 사용하여 Excel 통합 문서를 만드는 단계 {.WP- 블록 헤드}

Java 용 Apache Poi API를 사용하여 Excel 통합 문서 작성은 간단하고 쉽고 다음 단계를 사용하여 달성 할 수 있습니다.

  1. xssfworkbook 클래스를 사용하여 통합 문서 만들기
  2. 출력 스트림을 닫습니다. Apache Poi를 사용하여 Excel 통합 문서를 만드는 Java 코드는 다음과 같습니다.
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

위의 코드는 XLSX 파일 형식의 Excel 통합 문서를 만듭니다. 그러나이 단계에서 통합 문서를 열면 다음 오류가 발생합니다.

그 이유는 워크 시트없이 Apache POI를 사용하는 Excel 통합 문서 가이 오류를 제공하기 때문입니다. 이 문제를 해결하려면 생성 된 Excel 파일에 하나 이상의 워크 시트를 추가해야합니다.

Java의 Apache Poi와 함께 Excel 통합 문서에 워크 시트 추가

이것은 우리가 제대로 작동하기 위해 워크 시트를 통합 문서에 추가 해야하는 단계로 이어집니다. 이는 다음 코드 샘플과 같이 통합 문서에 추가되는 XSSFSHEET 객체를 사용하여 달성 할 수 있습니다.

XSSFWorkbook wb1 = new XSSFWorkbook();
try
{
	XSSFSheet sheet1 = wb1.createSheet("Ripon");
	FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
	wb1.write(fileOut);    
	fileOut.close();
}
catch(Exception ex)
{
	System.out.println("XLSX Generated Error...");
}

완료 xssfworkbook 예제

이제 우리는 Java 용 Apache Poi API를 사용하여 통합 문서를 만들고 시트를 추가하는 방법을 보았으므로 생성 된 워크 시트에 행과 셀을 추가하는 방법을 살펴 보겠습니다. XSSFSHEET 클래스에는 시트에 행을 추가 할 수있는 메소드 크레이터가 있습니다. 이것은 Excel 워크 시트의 행을 나타내는 행 클래스의 객체를 반환합니다. 워크 시트에서 셀을 만들려면 XSSFCell 클래스의 객체를 반환하는 CreateCell 방법을 사용해야합니다. XSSFCell의 SetCellValue 방법은 셀의 값을 설정하는 데 사용됩니다. XSSFWorkbook을 사용하여 통합 문서를 작성하고 XSSFSHEET를 사용하여 시트를 추가하고 XSSFROW를 추가하는 완전한 예는 다음과 같습니다.

// Blank workbook
        XSSFWorkbook workbook = new XSSFWorkbook();
        // Creating a blank Excel sheet
        XSSFSheet sheet = workbook.createSheet("student Details");
        // Creating an empty TreeMap of string and Object][] type
        Map<String, Object[]> data = new TreeMap<String, Object[]>();
        // Writing data to Object[]
        // using put() method
        data.put("1", new Object[] { "ID", "CITY", "STATE" });
        data.put("2", new Object[] { 1, "Clanton", "Alabama" });
        data.put("3", new Object[] { 2, "Cordova", "Alaska" });
        data.put("4", new Object[] { 3, "Clifton", "Arizona" });
        data.put("5", new Object[] { 4, "Arcadia", "California" });
  
	// Iterating over data and writing it to sheet
	Set<String> keyset = data.keySet(); 
        int rownum = 0;
        for (String key : keyset) { 
            // Creating a new row in the sheet
            XSSFRow row = sheet.createRow(rownum++); 
            Object[] objArr = data.get(key); 
            int cellnum = 0; 
            for (Object obj : objArr) { 
                // This line creates a cell in the next column of that row
                XSSFCell cell = row.createCell(cellnum++); 
                if (obj instanceof String)
                    cell.setCellValue((String)obj); 
                else if (obj instanceof Integer)
                    cell.setCellValue((Integer)obj);
            }
        }     
        // Writing the workbook
        FileOutputStream out = new FileOutputStream("gfgcontribute.xlsx");
        workbook.write(out); 
        // Closing file output connections
        out.close();

결론 {.WP- 블록 헤드}

이 블로그 기사에서는 Java 용 Apache Poi API를 사용하여 Excel 통합 문서를 만드는 방법을 시연했습니다. XSSFWorkbook을 사용하여 XLSX 통합 문서를 생성하고 워크 시트를 추가하고 워크 시트에 행을 추가했으며 워크 시트의 셀에 데이터를 채웠습니다. Java 용 Apache Poi를 사용하여 Excel 통합 문서 작업의 더 많은 예를 보려면 계속 지켜봐 주시기 바랍니다.