Notice
Recent Posts
Recent Comments
Link
- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
[Apache POI] xlsx 파일을 xls 파일로 변환하는 메서드 본문
나는 check box와 같은 Excel FormControl 까지 변환하기를 원했는데, 다음과 같은 코드로는 Form Control들까지 복사되지 않는다.
[출처] http://stackoverflow.com/questions/20049922/java-poi-api-convert-from-xlsx-to-xls
/**
* xlsx 파일(XSSFWorkbook)을 xls 파일(HSSFWorkbook)로 변환하는 메서드.
* [참조] http://stackoverflow.com/questions/20049922/java-poi-api-convert-from-xlsx-to-xls
*
* @param xssfWorkbook
* @return
*/
private HSSFWorkbook convertXlsxToXls(XSSFWorkbook xssfWorkbook) {
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
int sheetCnt = xssfWorkbook.getNumberOfSheets();
for (int i = 0; i < sheetCnt; i++) {
Sheet sIn = xssfWorkbook.getSheetAt(i);
Sheet sOut = hssfWorkbook.createSheet(sIn.getSheetName());
Iterator rowIt = sIn.rowIterator();
while (rowIt.hasNext()) {
Row rowIn = rowIt.next();
Row rowOut = sOut.createRow(rowIn.getRowNum());
Iterator| cellIt = rowIn.cellIterator();
while (cellIt.hasNext()) {
Cell cellIn = cellIt.next();
Cell cellOut = rowOut.createCell(cellIn.getColumnIndex(), cellIn.getCellType());
switch (cellIn.getCellType()) {
case Cell.CELL_TYPE_BLANK: break;
case Cell.CELL_TYPE_BOOLEAN:
cellOut.setCellValue(cellIn.getBooleanCellValue());
break;
case Cell.CELL_TYPE_ERROR:
cellOut.setCellValue(cellIn.getErrorCellValue());
break;
case Cell.CELL_TYPE_FORMULA:
cellOut.setCellFormula(cellIn.getCellFormula());
break;
case Cell.CELL_TYPE_NUMERIC:
cellOut.setCellValue(cellIn.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
cellOut.setCellValue(cellIn.getStringCellValue());
break;
}
CellStyle styleIn = cellIn.getCellStyle();
CellStyle styleOut = cellOut.getCellStyle();
styleOut.setDataFormat(styleIn.getDataFormat());
cellOut.setCellComment(cellIn.getCellComment());
}
}
}
return hssfWorkbook;
}
|
위 웹페이지에 다음과 같은
getOutputStream() has already been called for this response
에러 해결책이 나와 있는데, 이렇게 하면 되는구나. 흥미롭다.
out.clear(); //out--> jsp자체 객체 out=pageContext.pushBody(); //out--> jsp자체 객체 //getOutputStream() has already been called for this response //오류 해결을 위판 편법 ServletOutputStream sout = response.getOutputStream(); newWb.write(sout);'Java' 카테고리의 다른 글
| [공개SW 툴 가이드] JUnit (0) | 2015.06.11 |
|---|---|
| [Apache POI] 날짜 서식의 셀 데이터 읽기 (0) | 2015.05.07 |
| Excel (xls포맷) Form Control (Checkbox) 상태 읽기. (0) | 2015.04.27 |
| MyBatis를 이용해서 이미지 파일을 DB에 저장하고 불러오기 (0) | 2015.04.20 |
| [java] 리소스 파일 절대경로 가져오기. (1) | 2015.04.17 |
Comments