POI导入EXCEL出现的问题

问题描述

代码如下:InputStreaminp=newFileInputStream(path);//使用workbookFactory实例化workbook对象Workbookwb=WorkbookFactory.create(inp);intcolumnNum=0;//得到要读取的sheetSheetsheet=wb.getSheetAt(sheetIndex);//得到当前sheet中的所有行的行数if(sheet.getRow(0)!=null){columnNum=sheet.getRow(0).getLastCellNum()-sheet.getRow(0).getFirstCellNum();}.......导入小文件EXCEL时可通过。导入大文件(4000+行)时,走到Workbookwb=WorkbookFactory.create(inp);卡住抛错报错误在一楼:

解决方案

解决方案二:
org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetExceptionatorg.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)atorg.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403)atorg.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)atorg.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:183)atorg.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:73)atcom.rier.core.dao.excelReader.getrowCellnum(excelReader.java:215)atcom.rier.keysafety.auth.action.ExportWordAction.importInfo(ExportWordAction.java:362)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atcom.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)atcom.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)atcom.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)atorg.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atorg.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atorg.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atorg.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:314)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atorg.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atorg.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atorg.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)atorg.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)atorg.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)atorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atcom.rier.keysafety.filter.LoginFilter.doFilter(LoginFilter.java:86)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)atorg.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)atorg.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)atorg.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)atjava.lang.Thread.run(Thread.java:619)
解决方案三:
Causedby:java.lang.reflect.InvocationTargetExceptionatsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)atjava.lang.reflect.Constructor.newInstance(Constructor.java:513)atorg.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)...74moreCausedby:java.lang.OutOfMemoryError:Javaheapspaceatorg.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:1592)atorg.apache.xmlbeans.impl.store.Saver$TextSaver.preEmit(Saver.java:1223)atorg.apache.xmlbeans.impl.store.Saver$TextSaver.emit(Saver.java:1144)atorg.apache.xmlbeans.impl.store.Saver$TextSaver.emitElement(Saver.java:926)atorg.apache.xmlbeans.impl.store.Saver.processElement(Saver.java:456)atorg.apache.xmlbeans.impl.store.Saver.process(Saver.java:307)atorg.apache.xmlbeans.impl.store.Saver$TextSaver.saveToString(Saver.java:1727)atorg.apache.xmlbeans.impl.store.Cursor._xmlText(Cursor.java:546)atorg.apache.xmlbeans.impl.store.Cursor.xmlText(Cursor.java:2436)atorg.apache.xmlbeans.impl.values.XmlObjectBase.xmlText(XmlObjectBase.java:1455)atorg.apache.poi.xssf.model.SharedStringsTable.getKey(SharedStringsTable.java:130)atorg.apache.poi.xssf.model.SharedStringsTable.readFrom(SharedStringsTable.java:120)atorg.apache.poi.xssf.model.SharedStringsTable.<init>(SharedStringsTable.java:102)atsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)atjava.lang.reflect.Constructor.newInstance(Constructor.java:513)atorg.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)atorg.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403)atorg.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)atorg.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:183)atorg.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:73)atcom.rier.core.dao.excelReader.getrowCellnum(excelReader.java:215)atcom.rier.keysafety.auth.action.ExportWordAction.importInfo(ExportWordAction.java:362)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atcom.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)atcom.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)atcom.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
解决方案四:
检查类库对不对
解决方案五:
内存溢出了,你把VM的内存设置大一些!
解决方案六:
引用3楼wyx100的回复:

检查类库对不对

小的文件是没有问题的,4000条以上的文件才会出现这个问题。
解决方案七:
4楼说得对,还有excel最好不要有样式
解决方案八:
这说明你的输入流就出现了问题
解决方案九:
privatestaticList<ContactsManagementInfo>read2003Excel(MultipartFilefile)throwsIOException{InputStreaminput=file.getInputStream();List<ContactsManagementInfo>contactsManagementInfoList=newArrayList<ContactsManagementInfo>();try{HSSFWorkbookhwb=newHSSFWorkbook(input);HSSFSheetsheet=hwb.getSheetAt(0);ContactsManagementInfoci=null;HSSFRowrow=null;HSSFCellcell=null;intcounter=1;for(inti=sheet.getFirstRowNum();counter<sheet.getPhysicalNumberOfRows();i++){ci=newContactsManagementInfo();row=sheet.getRow(i+1);for(intj=row.getFirstCellNum();j<=row.getLastCellNum();j++){cell=row.getCell(j);switch(j){case0:ci.setId(Integer.parseInt(cell.getStringCellValue()));break;case1:ci.setDepartmentId(Integer.parseInt(cell.getStringCellValue()));break;case2:ci.setDepartmentName(cell.getStringCellValue());break;case3:ci.setName(cell.getStringCellValue());break;case4:ci.setRoomNum(cell.getStringCellValue());break;case5:ci.setOfficePhone(cell.getStringCellValue());break;case6:ci.setFaxNum(cell.getStringCellValue());break;case7:ci.setTelephone(cell.getStringCellValue());break;default:break;}}counter++;contactsManagementInfoList.add(ci);}}catch(Exceptione){e.printStackTrace();}returncontactsManagementInfoList;}

你这是输入流就出现问题了,可能是数据格式有问题,上面方法可以参考一下我实现的导入功能
解决方案十:
引用6楼sun403的回复:

4楼说得对,还有excel最好不要有样式

样式我excel导几万行都没事不是样式问题

时间: 2024-10-29 07:17:55

POI导入EXCEL出现的问题的相关文章

poi导入excel到数据库,excel中的空白行也会导入到数据库

问题描述 poi导入excel到数据库,excel中的空白行也会导入到数据库 if条件判断也没起作用,如何才能正确判断 解决方案 将数据库中的内容导入到excel 解决方案二: 应该判断的是 该行内容的空白,而不是 row 对应的 null 值. row 对应不会为 null 的,只是行内数据的 空白 . 解决方案三: 判断 row == null这个地方不对,需要判断行里的内容为null才可以 你可以单步调试一下,看看 解决方案四: 判断方法不对,看下执行到的步骤

poi导入excel到数据库,数据库是number类型,实体是integer,解析过程中报错

问题描述 poi导入excel到数据库,数据库是number类型,实体是integer,解析过程中报错 解决方案 cell里的值是文本类型,不能强制转型

poi导入excel

请看excel分类,其他的博客,下面的博客写的比较早,没啥太大利用价值,纯粹是复制代码 贴代码: import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi

java的poi技术读取和导入Excel实例_java

报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑.Java程序由于其跨平台特性,不能直接操纵Excel.因此,本文探讨一下POI视线Java程序进行Excel的读取和导入. 项目结构: java_poi_excel用到的Excel文件:xls XlsMain .java 类 //该类有main方法,主要负责运行程序,同时该类中也包含了用poi读取Excel(2003版) import java.io.FileInputStream; import

java导入excel时怎么处理日期格式

在Excel中的日期格式,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171.如果使用POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理. 正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话,创建一个日期格式,再将单元格的内容以这个日期格式显示出来. 如果单元格不是日期格式,那么则直接得到NUMERIC的值就行了. 具体代码如

java poi做导入excel 2007在本地没问题,在正式环境出问题

问题描述 java poi做导入excel 2007在本地没问题,在正式环境出问题 解决方案 先上传到服务器.再做导入 解决方案二: 就是先上传到服务器的 解决方案三: 你文件上传到服务器后的保存目录是D:apache.......poifiles这个目录么

poi处理excel大数据量的导入会报内存溢出

问题描述 poi处理excel大数据量的导入会报内存溢出 XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(fileName())); 就是单独执行这行代码都不行,报内存溢出,我把虚拟机都设置成最大了也溢出 差不多10万行吧 解决方案 poi大数据量excel导入 解决方案二: 可以参考这:poi的eventmodel写的大数据量的excel的读取程序.http://gaosheng08.iteye.com/blog/624

导入-在poi读取excel的合并数据时,怎么判断合并了多少行以及怎么取值

问题描述 在poi读取excel的合并数据时,怎么判断合并了多少行以及怎么取值 类似于上面的导入格式怎么读数据 解决方案 参考这个EXCEL中如何用VBA判断某一地址单元格是否为合并单元格然后把vba转成你自己的语言http://wenku.baidu.com/link?url=nsc0K4oKljjsvfVayJIXT9q2oNcWMwgjRghQdCqOPPJaH_Zm0UNgwqRKRdmC5PypqxvKwIDBgRV7i8W9sxiR0_KhBR78e6b6vTenaoVEE-7

java poi的excel导入数据读取

问题描述 java poi的excel导入数据读取 在使用poi时候,如何将获取的row转换成列,,现在excel模板格式就是类似这种,以行作为一个对象的第一个字段,列作为一个对象. 就比如 第一行作为对象第一个属性值的内容,第二行作为属性第二个属性值的内容,以此类推. 解决方案 你是不会读取数据吗?先循环所有的工作表,再循环所有的行,最后循环这一行里面所有的列,取出来不就完了么 解决方案二: Microsoft的Office系列产品拥有大 量的用户,Word.Excel也成为办公文件的首选.在