일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- multipart
- 주소 좌표변환
- partition by
- 폐업자에 대한 업종등의 정보내역
- jquery selectbox change
- KOSA
- remote ip
- String[]
- checkbox 값처리
- TM128
- 아이폰키보드
- http https
- ajax async
- ajax 동기방식처리
- 서브쿼리
- update
- eclipse hotdeploy
- map api v3
- mysql
- mysql trigger
- String 배열
- Oracle
- 한국소프트웨어산업협회
- extundelete
- 접속ip
- 첫주 및 마지막주 날짜 전체 포함
- ant path pattern
- 컴퓨터 드라이버
- 2개 테이블
- group by max
- Today
- Total
하은양 믿음군 효실맘 호홍홍집s
xls, xlsx파일 읽기처리를 위한 poi관련 참고 본문
xls : 오피스 2007미만 버전
xlsx : 오피스 2007 이상 버전
다운로드 URL : http://poi.apache.org/download.html
위에서 최신버전을 다운받았는데... 3.16버전을 하지만 잘 안되서
3.13버전을 받아서 작업하니 되네요^^
xls : poi-3.13-20150929.jar
xlsx : poi-ooxml-3.13-20150929.jar , poi-ooxml-schemas-3.13-20150929.jar , xmlbeans-2.6.0.jar 필요하네요!!
※ 위의 3.16가지고 아래의 샘플을 해봤는데 잘 안되네요...ㅠㅠ
참고 샘플 URL : https://gist.github.com/madan712/3912272
<%@ page import="java.io.*" %>
<%@ page import="org.apache.poi.hssf.usermodel.*" %>
<%@ page import="org.apache.poi.xssf.usermodel.*" %>
<%
InputStream inputStream = null;
// 엑셀파일 구분 : xls 파일
HSSFWorkbook wb_hssf = null;
HSSFSheet sheet_hssf = null;
HSSFRow row_hssf = null;
HSSFCell cell_hssf = null;
// 엑셀파일 구분 : xlsx 파일
XSSFWorkbook wb_xssf = null;
XSSFSheet sheet_xssf = null;
XSSFRow row_xssf = null;
XSSFCell cell_xssf = null;
try{
// 업로드된 파일 불러오기
inputStream = new FileInputStream(new File(sSavePath+sFilename));
Iterator rowIterator = null;
if("xlsx".equals(sExtName)) {
wb_xssf = new XSSFWorkbook(inputStream);
sheet_xssf = wb_xssf.getSheetAt(0);
rowIterator = sheet_xssf.rowIterator();
}else{
wb_hssf = new HSSFWorkbook(inputStream);
sheet_hssf = wb_hssf.getSheetAt(0);
rowIterator = sheet_hssf.rowIterator();
}
if(rowIterator != null){
int iRowCnt = 0;
int i = 1;
while (rowIterator.hasNext()) {
if("xlsx".equals(sExtName)) {
row_xssf = (XSSFRow)rowIterator.next();
}else{
row_hssf = (HSSFRow)rowIterator.next();
}
if(iRowCnt == 0){ // 첫번째 줄 생략
iRowCnt++;
continue;
}
Iterator cellIterator = null;
if("xlsx".equals(sExtName)) {
cellIterator = row_xssf.cellIterator();
}else{
cellIterator = row_hssf.cellIterator();
}
String sCOL0 = "";
String sCOL1 = "";
String sCOL2 = "";
String sCOL3 = "";
String sCOL4 = "";
StringBuilder sb = new StringBuilder();
String[] ss = new String[5];
int n=0;
while (cellIterator.hasNext()) {
if(n > 4) break;
String cellStringValue = null;
if("xlsx".equals(sExtName)) {
cell_xssf = (XSSFCell)cellIterator.next();
if (cell_xssf.getCellType() == 0) {
double doubleValue = cell_xssf.getNumericCellValue();
int intValue = Integer.parseInt(String.valueOf(Math.round(doubleValue)));
cellStringValue = intValue+"";
}else if (cell_xssf.getCellType() == 1) {
cellStringValue = cell_xssf.getStringCellValue();
}else if (cell_xssf.getCellType() == 2) {
java.util.Date dateValue = cell_xssf.getDateCellValue();
if(dateValue != null){
SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd");
cellStringValue = transFormat.format(dateValue);
}else{
cellStringValue = "";
}
}else if (cell_xssf.getCellType() == 3) {
cellStringValue = "";
}else if (cell_xssf.getCellType() == 4) {
boolean booleanValue = cell_xssf.getBooleanCellValue();
cellStringValue = Boolean.toString(booleanValue);
}else if (cell_xssf.getCellType() == 5) {
Byte byteValue = cell_xssf.getErrorCellValue();
if(byteValue != null){
cellStringValue = byteValue.toString();
}else{
cellStringValue = "";
}
}
}else{
cell_hssf = (HSSFCell)cellIterator.next();
if (cell_hssf.getCellType() == 0) {
double doubleValue = cell_hssf.getNumericCellValue();
int intValue = Integer.parseInt(String.valueOf(Math.round(doubleValue)));
cellStringValue = intValue+"";
}else if (cell_hssf.getCellType() == 1) {
cellStringValue = cell_hssf.getStringCellValue();
}else if (cell_hssf.getCellType() == 2) {
java.util.Date dateValue = cell_hssf.getDateCellValue();
if(dateValue != null){
SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd");
cellStringValue = transFormat.format(dateValue);
}else{
cellStringValue = "";
}
}else if (cell_hssf.getCellType() == 3) {
cellStringValue = "";
}else if (cell_hssf.getCellType() == 4) {
boolean booleanValue = cell_hssf.getBooleanCellValue();
cellStringValue = Boolean.toString(booleanValue);
}else if (cell_hssf.getCellType() == 5) {
Byte byteValue = cell_hssf.getErrorCellValue();
if(byteValue != null){
cellStringValue = byteValue.toString();
}else{
cellStringValue = "";
}
}
}
ss[n] = cellStringValue;
n++;
}
sCOL0 = ss[0]; if(sCOL0 == null) sCOL0 = "";
sCOL1 = ss[1]; if(sCOL1 == null) sCOL1 = "";
sCOL2 = ss[2]; if(sCOL2 == null) sCOL2 = "";
sCOL3 = ss[3]; if(sCOL3 == null) sCOL3 = "";
sCOL4 = ss[4]; if(sCOL4 == null) sCOL4 = "";
}
}else{
// rowIterator 가 null
}
}catch(IOException ierr){
System.out.println(ierr.toString());
}catch(Exception ee){
System.out.println(ee.toString());
}finally{
if(inputStream != null){
inputStream.close();
}
}
// 등록파일 삭제처리...
if(!sFilename.equals("")){
File f = new File(sSavePath+sFilename);
if(f.exists()){
f.delete();
}
}
}else { // 파일명이 없으면 Back!!
out.println("<script type='text/javascript'>");
out.println("alert('파일 저장 오류 발생');");
out.println("</script>");
return;
}
%>
'가벼운 배움 > jsp' 카테고리의 다른 글
request.scheme 처리시 https가 표현 안될때 편법 (0) | 2017.12.26 |
---|---|
ant path url 매칭하기 (0) | 2017.12.21 |
Multipart 업로드시 String[] 배열(checkbox 값같은것) 처리하기 예제 (0) | 2017.01.25 |
접속 IP 구하기 (0) | 2016.12.26 |
기상청 RSS xml 파싱처리하기 (1) | 2016.11.18 |