TIL | 06.22의 기록
엑셀로 내용을 읽기쓰기를 하기 위해서 framework가 필요하다.
1. jakarta.apache.org에서 POI와 Logging 다운로드
2. export -> java.jar로 압축
3. Build Path -> path 추가
public class ExcelWriter {
public ExcelWriter() {
//1. workbook 생성
HSSFWorkbook workbook = new HSSFWorkbook();
//2. sheet생성
HSSFSheet sheet1 = workbook.createSheet("회원목록"); //시트명
HSSFSheet sheet2 = workbook.createSheet(); //시트명x
//3. row생성
HSSFRow row0 = sheet1.createRow(0); //0행 생성
//4. cell생성
HSSFCell cell0 = row0.createCell(0);
cell0.setCellValue("번호"); //cell값 입력
row0.createCell(1).setCellValue("이름");
row0.createCell(2).setCellValue("연락처");
HSSFRow row1 = sheet1.createRow(1); //1행 생성
row1.createCell(0).setCellValue(1);
row1.createCell(1).setCellValue("홍길동");
row1.createCell(2).setCellValue("010-1234-5678");
//파일로 쓰기
File f = new File("c://testFolder/member.xls");
FileOutputStream fos = new FileOutputStream(f);
workbook.write(fos);
}
}
public class ExcelRead {
public ExcelRead() {
File f = new File("c://testFolder", "member.xls");
FileInputStream fis = new FileInputStream(f);
//엑셀파일을 객체 생성하기
POIFSFileSystem poi = new POIFSFileSystem(fis);
//1. workbook 구하기
HSSFWorkbook book = new HSSFWorkbook(poi);
//시트 수 구하기
int sheetCnt = book.getNumberOfSheets();
System.out.println("시트수->"+sheetCnt);
//2. 회원목록 시트 객체 얻어오기
HSSFSheet sheet = book.getSheet("회원목록"); //book.getSheetAt(0) 인덱스번호로도 가능
//행의 수 구하기
int rowCnt = sheet.getPhysicalNumberOfRows();
System.out.println("행의수->"+rowCnt);
System.out.println("번호\t이름\t연락처");
for(int idx=1; idx<rowCnt; idx++) {// idx=1,2,3
HSSFRow row = sheet.getRow(idx);
//셀의 수 구하기
int cellCnt = row.getPhysicalNumberOfCells();
for(int i=0; i<cellCnt; i++) { //0,1,2
HSSFCell cell = row.getCell(i);
if(i==0) {//번호
int num = (int)row.getCell(i).getNumericCellValue(); //숫자 double
System.out.print(num+"\t");
}else {//이름,전화번호
String str = row.getCell(i).getStringCellValue(); //문자 String
System.out.print(str+"\t");
}
}
System.out.println();
}
}