보통 엑셀 파일은 jxl 파일로 읽기 쓰기 하는 것이 편하다.
하지만 고객이 xlsx 파일로 하고 싶다고 하면 방법이 없다.
이럴 때는 쓰기엔 xls 파일을 jxl 로 사용하고 읽을때는 xlsx 를 가능하게 해주면
될 것 같다.
그래서 jxl 은 xlsx 를 지원 하지 않으므로
poi 를 써서 엑셀 읽기를 구현해 보았다.
쭉 내려 가면서 보면 이해가 될 것이다.
위 부분을 주석 처리 하고 아래 부분을 주석을 풀면 xlsx(엑셀 2007 버전 포맷)
이 되므로 사용하기 쉬울 것이다.
패키지 파일은 첨부 하였으나 안보인다면
http://poi.apache.org/
경로로 가서 받으면 된다.
package excel;
import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class excelTest2 {
/**
* 용도:
* 파라미터:
* 작성자 :
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//String filePath = "c:/품질관리_cdma_0111.xlsx";
String filePath = "c:/1.xls";
try{
//xls 파일 읽기***************************************************
POIFSFileSystem excel = new POIFSFileSystem(new FileInputStream(filePath));
HSSFWorkbook workBook = new HSSFWorkbook(new FileInputStream(new File(filePath)));
HSSFSheet sheet = null;
HSSFRow row = null;
HSSFCell cell = null;
//************************************************************************
/*
*
//*********************************************** xlsx 파일 읽기
XSSFWorkbook workBook = new XSSFWorkbook(new FileInputStream(new File(filePath)));
XSSFSheet sheet = null;
XSSFRow row = null;
XSSFCell cell = null;
//****************************************************************
*/
int sheetNum = workBook.getNumberOfSheets();
for(int k=0;k<sheetNum;k++){
sheet = workBook.getSheetAt(k);
int rows = sheet.getPhysicalNumberOfRows();
for(int r=0;r<rows;r++){
row = sheet.getRow(r);
int cells = row.getPhysicalNumberOfCells();
for(short c=0;c<cells;c++){
cell = row.getCell(c);
System.out.println("row:"+r+"==cells:"+c);
if(cell== null){
continue;
}
switch(cell.getCellType()){
case 0:
System.out.println(cell.getNumericCellValue());
break;
case 1:
System.out.println(cell.getStringCellValue());
break;
case Cell.CELL_TYPE_FORMULA :
System.out.println(cell.getCellFormula());
break;
default:
System.out.println("");
}
}//cell
}//row
}
}catch(Exception e){
e.printStackTrace();
}
}
}
'JAVA > EXCEL컨트롤관련' 카테고리의 다른 글
POI Library를 이용한 Excel Read (0) | 2017.12.06 |
---|---|
POI 열너비 행높이 (0) | 2015.11.12 |
[공유] POI Quick Guide (0) | 2015.11.12 |
병합된 셀의 스타일( border) (0) | 2015.11.12 |
POI Excel 파일 쓰기 (0) | 2015.10.22 |
width (0) | 2015.09.04 |
셀 합치기 (0) | 2015.09.04 |
Excel - POI (0) | 2015.03.09 |