관리 시스템 개발 시 보고서 생성 기능은 필수적입니다. 특히 웹 애플리케이션에서 엑셀 파일을 다루는 방법을 알아보는 것은 매우 유용합니다. 본 기사에서는 Java와 jxl 라이브러리를 사용하여 엑셀 파일을 생성하고 읽는 방법을 설명합니다.
엑셀 파일 생성하기
jxl 라이브러리를 사용하여 엑셀 파일을 생성하는 방법은 다음과 같습니다. 먼저 jxl.jar 파일을 프로젝트에 추가해야 합니다.
import java.io.File;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelGenerator {
/**
* 엑셀 파일 생성 및 데이터 쓰기
* @param args 명령줄 인자
*/
public static void main(String[] args) {
File outputFile = new File("C:/temp/sample_data.xls"); // 생성될 엑셀 파일 경로
String[] headers = {"번호", "이름", "성별"} // 헤더 정보
try {
if(!outputFile.exists()) {
outputFile.createNewFile(); // 파일이 없으면 새로 생성
}
// 새로운 워크북 생성
WritableWorkbook excelWorkbook = Workbook.createWorkbook(outputFile);
// 워크시트 생성
WritableSheet excelSheet = excelWorkbook.createSheet("데이터시트", 0);
// 레이블 객체
Label cellLabel = null;
// 헤더 추가
for (int i = 0; i < headers.length; i++) {
/**
* Label(열, 행, 텍스트);
* 열: 셀의 열 위치
* 행: 셀의 행 위치
* 텍스트: 셀에 들어갈 내용
*/
cellLabel = new Label(i, 0, headers[i]);
excelSheet.addCell(cellLabel);
}
// 데이터 추가
for (int i = 1; i <= 10; i++) {
cellLabel = new Label(0, i, String.valueOf(i));
excelSheet.addCell(cellLabel);
cellLabel = new Label(1, i, "사용자" + i);
excelSheet.addCell(cellLabel);
cellLabel = new Label(2, i, "남성");
excelSheet.addCell(cellLabel);
}
excelWorkbook.write(); // 변경사항 파일에 저장
excelWorkbook.close(); // 워크북 닫기
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("엑셀 파일 생성 완료!");
}
}
엑셀 파일 읽기
이제 생성된 엑셀 파일에서 데이터를 읽어오는 방법을 살펴보겠습니다.
import java.io.File;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ExcelReader {
public static void main(String[] args) {
File inputFile = new File("C:/temp/sample_data.xls"); // 읽을 엑셀 파일 경로
try{
if(inputFile.exists()) {
// 워크북 열기
Workbook excelWorkbook = Workbook.getWorkbook(inputFile);
// 첫 번째 워크시트 가져오기
Sheet excelSheet = excelWorkbook.getSheet(0);
// 데이터 읽기
for (int row = 0; row < excelSheet.getRows(); row++) {
for (int col = 0; col < excelSheet.getColumns(); col++) {
Cell currentCell = excelSheet.getCell(col, row);
System.out.print(currentCell.getContents() + "\t");
}
System.out.println();
}
excelWorkbook.close(); // 워크북 닫기
} else {
System.out.println("파일을 찾을 수 없습니다");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
웹 애플리케이션에서 보고서 기능을 구현하려면 위와 같이 엑셀 파일을 생성한 후 사용자가 다운로드할 수 있도록 제공하면 됩니다. 이 방법은 관리 시스템의 다양한 보고서 생성에 활용할 수 있습니다.