XSSFWorkbook 에서 오류
- 작성자 :
- 황*성
- 작성일 :
- 2024-11-29 16:14:18
- 조회수 :
- 115
- 구분 :
- 개발환경 / 4.2
- 진행상태 :
- 완료
Q
안녕하세요. 도움이 필요해서 문의 드립니다.
기존 전자 정부프레임 기반 소스(기존 버전은 모름) 를 4.2로 업그레이드하고 관리자 페이지에서 기존 프로그램에서 엑셀 다운로드 기능을 수행하면
로컬 PC환경에서는 정상적으로 엑셀파일이 다운로드가 잘 됩니다.
개발 서버 테스트시에는 example.xlsx 엑셀 파일이 다운로드는 됩니다. 파일을 열면 "파일 형식 또느 파일 확장명이 잘못되어 'example.xlsx' 파일을 열 수 없습니다. 파일이 손상되지 않았는지 , 파일 확장명이 파일 형식과 일치하는지 확인 하십시요."라는 오류메세지가 뜹니다.
서버로그를 확인하면 logger.debug("excel 1-2"); 단계까지 로그만 있습니다.
===========================Excel Down Sample Source ===================================
@Controller
public class ExcelTestController {
/**
* slf4j Logging
*/
private static Logger logger = LoggerFactory.getLogger(ExcelTestController.class);
@GetMapping("/control/downloadExcel.do")
public void downloadExcel(HttpServletResponse response) throws IOException {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=\"example.xlsx\"");
logger.debug("excel 1-1");
try (ServletOutputStream out = response.getOutputStream()) {
// Apache POI로 엑셀 파일 생성
logger.debug("excel 1-2");
Workbook workbook = new XSSFWorkbook();
logger.debug("excel 1-3");
Sheet sheet = workbook.createSheet("Sheet1");
logger.debug("excel 1-4");
Row row = sheet.createRow(0);
logger.debug("excel 1-5");
Cell cell = row.createCell(0);
logger.debug("excel 1-6");
cell.setCellValue("Sample Data");
logger.debug("excel 1-7");
// 엑셀 데이터를 HTTP 응답으로 출력
workbook.write(out);
logger.debug("excel 1-8");
workbook.close();
logger.debug("excel 1-9");
}
}
}
기존 전자 정부프레임 기반 소스(기존 버전은 모름) 를 4.2로 업그레이드하고 관리자 페이지에서 기존 프로그램에서 엑셀 다운로드 기능을 수행하면
로컬 PC환경에서는 정상적으로 엑셀파일이 다운로드가 잘 됩니다.
개발 서버 테스트시에는 example.xlsx 엑셀 파일이 다운로드는 됩니다. 파일을 열면 "파일 형식 또느 파일 확장명이 잘못되어 'example.xlsx' 파일을 열 수 없습니다. 파일이 손상되지 않았는지 , 파일 확장명이 파일 형식과 일치하는지 확인 하십시요."라는 오류메세지가 뜹니다.
서버로그를 확인하면 logger.debug("excel 1-2"); 단계까지 로그만 있습니다.
===========================Excel Down Sample Source ===================================
@Controller
public class ExcelTestController {
/**
* slf4j Logging
*/
private static Logger logger = LoggerFactory.getLogger(ExcelTestController.class);
@GetMapping("/control/downloadExcel.do")
public void downloadExcel(HttpServletResponse response) throws IOException {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=\"example.xlsx\"");
logger.debug("excel 1-1");
try (ServletOutputStream out = response.getOutputStream()) {
// Apache POI로 엑셀 파일 생성
logger.debug("excel 1-2");
Workbook workbook = new XSSFWorkbook();
logger.debug("excel 1-3");
Sheet sheet = workbook.createSheet("Sheet1");
logger.debug("excel 1-4");
Row row = sheet.createRow(0);
logger.debug("excel 1-5");
Cell cell = row.createCell(0);
logger.debug("excel 1-6");
cell.setCellValue("Sample Data");
logger.debug("excel 1-7");
// 엑셀 데이터를 HTTP 응답으로 출력
workbook.write(out);
logger.debug("excel 1-8");
workbook.close();
logger.debug("excel 1-9");
}
}
}
환경정보
-
- OS 정보 : 우분투
- 표준프레임워크 버전 : 4.2
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat
- DB 정보 : postgresql
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
질문하신 내용만으로는
정확한 답변을 드리기 어렵습니다.
로컬의 환경과 개발서버 환경과의 차이점을 확인해 보셔야 할듯 합니다.
오류 로그를 디버그 레벨로 변경하여
로그를 분석해 보시기 바랍니다.
감사합니다.
표준프레임워크센터입니다.
질문하신 내용만으로는
정확한 답변을 드리기 어렵습니다.
로컬의 환경과 개발서버 환경과의 차이점을 확인해 보셔야 할듯 합니다.
오류 로그를 디버그 레벨로 변경하여
로그를 분석해 보시기 바랍니다.
감사합니다.