[java] Java Apache POI를 사용하여 Excel 파일의 데이터 정렬하기
Apache POI는 Java에서 Excel 파일을 다루는 데 사용되는 유용한 라이브러리입니다. 이 라이브러리를 사용하면 Java로 Excel 파일의 데이터를 읽고 쓸 수 있습니다. 이번에는 Apache POI를 사용하여 Excel 파일의 데이터를 정렬하는 방법을 알아보겠습니다.
필요한 의존성 추가하기
먼저, 프로젝트의 의존성에 Apache POI를 추가해야 합니다. Maven을 사용하는 경우, pom.xml
파일에 다음 의존성을 추가합니다:
<dependencies>
<!-- Apache POI 라이브러리 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
</dependencies>
Gradle을 사용하는 경우, build.gradle
파일에 다음 의존성을 추가합니다:
dependencies {
// Apache POI 라이브러리
implementation 'org.apache.poi:poi:5.0.0'
}
Excel 파일에서 데이터 정렬하기
다음으로, Apache POI를 사용하여 Excel 파일에서 데이터를 읽고 정렬하는 방법을 알아보겠습니다. 아래의 코드 예제는 Excel 파일에서 첫 번째 컬럼을 기준으로 오름차순으로 데이터를 정렬하는 방법입니다.
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelDataSorter {
public static void main(String[] args) {
String filePath = "path/to/excel_file.xlsx";
try (FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(fis)) {
// 첫 번째 시트 선택
Sheet sheet = workbook.getSheetAt(0);
// 첫 번째 컬럼을 기준으로 오름차순 정렬
sheet.setColumnComparator(0, new CellComparator());
// 정렬된 데이터를 시트에 쓰기
FileOutputStream fos = new FileOutputStream(filePath);
workbook.write(fos);
fos.close();
System.out.println("Excel 파일의 데이터가 정렬되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
class CellComparator implements Comparator<Cell> {
@Override
public int compare(Cell cell1, Cell cell2) {
// 숫자인 경우 값을 비교하여 정렬
if (cell1.getCellType() == CellType.NUMERIC && cell2.getCellType() == CellType.NUMERIC) {
Double value1 = cell1.getNumericCellValue();
Double value2 = cell2.getNumericCellValue();
return value1.compareTo(value2);
}
// 숫자가 아닌 경우 문자열로 값을 비교하여 정렬
String value1 = cell1.getStringCellValue();
String value2 = cell2.getStringCellValue();
return value1.compareTo(value2);
}
}
위의 코드를 실행하면, 지정한 Excel 파일에서 첫 번째 컬럼을 기준으로 데이터가 오름차순으로 정렬됩니다.
결론
이번 포스트에서는 Java Apache POI를 사용하여 Excel 파일의 데이터를 정렬하는 방법을 알아보았습니다. Apache POI를 사용하면 Java로 Excel 파일의 데이터를 손쉽게 다룰 수 있으며, 이를 활용하여 데이터 정렬과 같은 작업을 수행할 수 있습니다.
더 자세한 내용은 Apache POI 공식 문서를 참조하시기 바랍니다.