`
songer4081
  • 浏览: 8174 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Poi3.9 写入时org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException:

阅读更多
POIFSFileSystem fs =new POIFSFileSystem(new FileInputStream(file));   
    
        HSSFWorkbook workBook= new HSSFWorkbook(fs); 
org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException: Initialisation of record 0x894 left 7 bytes remaining still to be read.   
    
    at org.apache.poi.hssf.record.RecordInputStream.hasNextRecord(RecordInputStream.java:156)   
    
    at org.apache.poi.hssf.record.RecordFactoryInputStream.nextRecord(RecordFactoryInputStream.java:231)   
    
    at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:443)   
    
    at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:285)   
    
    at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:248)   
    
    at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:192)   
    
    at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:174)  


解决方案:重写POIjar包中RecordInputSream.java类的hasNextRecord()方法如下


public boolean hasNextRecord() throws LeftoverDataException {
  if (_currentDataLength != -1 && _currentDataLength != _currentDataOffset) {
	readToEndOfRecord();
  }
  if (_currentDataLength != DATA_LEN_NEEDS_TO_BE_READ) {
	_nextSid = readNextSid();
  }
  return _nextSid != INVALID_SID_VALUE;
}

private void readToEndOfRecord(){
  while(this._currentDataOffset<this._currentDataLength)
      readByte();
}
分享到:
评论
1 楼 houxu56 2013-05-16  
根据解决方案改写后出如下错误

Exception in thread "main" org.apache.poi.hssf.record.RecordFormatException: Unable to construct record instance
at org.apache.poi.hssf.record.RecordFactory$ReflectionConstructorRecordCreator.create(RecordFactory.java:65)
at org.apache.poi.hssf.record.RecordFactory.createSingleRecord(RecordFactory.java:301)
at org.apache.poi.hssf.record.RecordFactoryInputStream.readNextRecord(RecordFactoryInputStream.java:285)
at org.apache.poi.hssf.record.RecordFactoryInputStream.nextRecord(RecordFactoryInputStream.java:251)
at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:443)
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 com.main.source.readExcel.read2003(readExcel.java:47)
at com.main.source.readExcel.read(readExcel.java:38)
at com.main.source.readExcel.main(readExcel.java:32)
Caused by: org.apache.poi.hssf.record.RecordFormatException: Not enough data (0) to read requested (1) bytes
at org.apache.poi.hssf.record.RecordInputStream.checkRecordPosition(RecordInputStream.java:233)
at org.apache.poi.hssf.record.RecordInputStream.readByte(RecordInputStream.java:241)
at org.apache.poi.hssf.record.HeaderFooterBase.<init>(HeaderFooterBase.java:39)
at org.apache.poi.hssf.record.HeaderRecord.<init>(HeaderRecord.java:36)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.poi.hssf.record.RecordFactory$ReflectionConstructorRecordCreator.create(RecordFactory.java:57)
... 11 more

相关推荐

    org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException

    解决POI读取EXCEL时报org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException异常

    org.apache.poi3.9 jar包

    "org.apache.poi3.9.jar"是这个项目的一个版本,适用于Java环境,它提供了对Office文档的读取、写入和修改功能。在Java编程中,如果你需要处理Excel数据,这个库是一个非常重要的工具。 该jar包中的主要类和接口...

    org.apache.poi jar包

    org.apache.poi JAR包,解决个人的 import org.apache.commons.beanutils.PropertyUtilsBean; import org.apache.commons.lang.StringUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi...

    org.apache.poi JAR包

    org.apache.poi JAR包,解决个人的 import org.apache.commons.beanutils.PropertyUtilsBean; import org.apache.commons.lang.StringUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi...

    org.apache.poi-ooxml-schemas-3.9 jar包

    "org.apache.poi-ooxml-schemas-3.9.jar" 是这个项目中的一个组件,它包含了用于解析和生成Open XML(OOXML)标准的Schema定义。 OOXML是Microsoft推出的一种新的XML文件格式,用于替代传统的二进制文件格式,例如....

    poi4.1.2以及所有依赖,源码,文档.zip

    org.apache.poi:poi:4.1.2 org.apache.poi:poi-ooxml:4.1.2 org.apache.poi:poi-ooxml-schemas:4.1.2 org.apache.xmlbeans:xmlbeans:3.1.0 com.github.virtuald:curvesapi:1.06 com.zaxxer:SparseBitSet:1.2 commons...

    POI 导入Excel 提醒LeftoverDataException求帮助

    在Java开发中,Apache POI库是一个非常常用的工具,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Excel。然而,在处理Excel文件时,有时可能会遇到一些异常情况,比如“LeftoverDataException”。...

    poi4.1.6 org.apache.poi.xwpf.converter.core word转pdf

    poi4.1.6 org.apache.poi.xwpf.converter.core word转pdf

    org.apache.poi.xwpf.converter.core-1.0.6

    org.apache.poi.xwpf.converter.core-1.0.6org.apache.poi.xwpf.converter.core-1.0.6org.apache.poi.xwpf.converter.core-1.0.6org.apache.poi.xwpf.converter.core-1.0.6

    org.apache.poi JAR包 Java

    org.apache.poi JAR包,解决import org.apache.poi.hssf.usermodel.HSSFWorkbook; 支持office全系excel文件解析。 import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; ...

    org.apache.poi.hssf.usermodel.HSSFCell

    velocity开发插件org.apache.poi.hssf.usermodel.HSSFCellorg.apache.poi.hssf.usermodel.HSSFCell

    org.apache.poi.xwpf.converter.pdf-1.0.6.zip

    org.apache.poi.xwpf.converter.pdf-1.0.6 org.apache.poi.xwpf.converter.core-1.0.6 org.apache.poi.xwpf.converter-0.9.1

    org.apache.poi 3.17最新官方版文件操作jar包

    - Excel处理:Apache POI提供了HSSF(旧版的BIFF8格式,.xls)和XSSF(基于XML的OpenXML格式,.xlsx)API,可以创建、读取、修改Excel工作簿、工作表、单元格等。 - Word处理:使用HWPF处理老版本的Word文档(.doc...

    org.apache.poi.xwpf.converter

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如DOCX、XLSX和PPTX等。`org.apache.poi.xwpf.converter` 模块是Apache POI的一部分,它提供了将Microsoft Word 2007(DOCX)文档转换为其他...

    org.apache.poi.xwpf.converter.pdf-1.0.6-pdf.zip

    org.apache.poi.xwpf.converter.pdf-1.0.6.jar 文件 org.apache.poi.xwpf.converter.pdf-1.0.6 org.apache.poi.xwpf.converter.core-1.0.6 org.apache.poi.xwpf.converter-0.9.1

    org.apache.poi.xwpf.converter.pdf-1.0.6.jar

    在给定的标题"org.apache.poi.xwpf.converter.pdf-1.0.6.jar"中,提到的是Apache POI的一个特定模块——XWPF(XML Word Processing Format),其主要关注于处理Word文档的XDOCReport库的PDF转换功能。描述中指出,这...

    poi-5.2.1.jar中文文档.zip

    poi-***.jar中文文档.zip,java,poi-***.jar,org.apache.poi,poi,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,apache,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【poi-***...

    org.apache.poi.xwpf.converter.core-1.0.4.jar

    "org.apache.poi.xwpf.converter.core-1.0.4.jar"是Apache POI的一个扩展库,主要用于XWPF(XML Word Processing Format)文档的转换,特别是针对Word 2007及以上版本的.openXML标准文档。 此扩展包包含了三个关键...

    org.apache.poi依赖包

    1. **Excel处理**:Apache POI 提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet Format)两个API,分别用于处理旧版的.xls格式和较新的.xlsx格式。它们支持创建工作簿、工作表、行、单元格等,并...

    org.apache.poi.hssf.converter,office转html所需包

    `org.apache.poi.hssf.converter` 是Apache POI的一个子模块,它专注于处理老版本的Excel文件(.xls),也就是基于HSSF(Horizontally Stored Spreadsheet Format)的文件。 在这个标题为“org.apache.poi.hssf....

Global site tag (gtag.js) - Google Analytics