'JAVA/POI'에 해당되는 글 3건
- 2013.05.15 :: org.apache.poi.EncryptedDocumentException: Default password is invalid for docId/saltData/saltHash
- 2013.04.07 :: 엑셀의 셀(Cell)번호를 java poi 형태로 변환............
- 2013.04.07 :: POI 엑셀 사용자 정의 서식 날짜일경우
org.apache.poi.EncryptedDocumentException: Default password is invalid for docId/saltData/saltHash
at org.apache.poi.hssf.record.RecordFactoryInputStream$StreamEncryptionInfo.createDecryptingStream(RecordFactoryInputStream.java:116)
at org.apache.poi.hssf.record.RecordFactoryInputStream.<init>(RecordFactoryInputStream.java:184)
at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:440)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:280)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:243)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:187)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:169)
at kr.faz.excelupload.controller.ExceluploadController.parsingTypeByExclude(ExceluploadController.java:496)
at kr.faz.excelupload.controller.ExceluploadController.adminExceluploadInsertFormAction(ExceluploadController.java:115)
at kr.faz.excelupload.controller.ExceluploadController$$FastClassByCGLIB$$7002440e.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
at kr.faz.aop.SessionCheck.adminSessionCheck(SessionCheck.java:57)
at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
at kr.faz.excelupload.controller.ExceluploadController$$EnhancerByCGLIB$$ee8dc86a.adminExceluploadInsertFormAction(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.Socket.invoke(Socket.java:776)
at org.apache.jk.common.Socket.processConnection(Socket.java:705)
at org.apache.jk.common.Socket$SocketConnection.runIt(Socket.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
CellReference.convertNumToColString 숫자를 엑셀의 숫자 Label 로 표기
CellReference.convertColStringToIndex 엑셀의 Cell Label 을 숫자로 표기. 일종의 Cell 번호.
https://poi.apache.org/apidocs/org/apache/poi/ss/util/CellReference.html
/**
* 엑셀에서 열 이름을 POI 에 맞도록 int 형으로 변환한다. ex) A -> 0, AA -> 26, AB -> 27
* @param cellNo
* @return
*/
public static int convertCellNameToInt(String cellNo){
int rvalue = 0;
char[] c = cellNo.toCharArray();
if ( c.length > 1 ) {
rvalue += (int)c[0]+26-65;
rvalue += (int)c[1]-65;
return rvalue;
} else {
rvalue = ((int)c[0])-65;
}
return rvalue;
}
엑셀의 사용자 정의 서식이 들어가 있는 날짜일경우
POI 관련자료를 찾아봤다...............
if( HSSFDateUtil.isCellDateFormatted(cell)) 이걸 사용하라고 하는데 -_-;;
안되는건지 되는건지...
일부 서식에서는 안된다.
결국 찾음.................
case HSSFCell.CELL_TYPE_NUMERIC:
if( HSSFDateUtil.isCellDateFormatted(cell)){
SimpleDateFormat fommatter = new SimpleDateFormat("yyyyMMdd");
data = fommatter.format(cell.getDateCellValue());
} else {
double ddata = cell.getNumericCellValue();
if ( HSSFDateUtil.isValidExcelDate(ddata) ){
SimpleDateFormat fommatter = new SimpleDateFormat("yyyyMMdd");
data = fommatter.format(cell.getDateCellValue());
} else {
data = String.valueOf(ddata);
}
}