You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2016/02/14 19:24:34 UTC
[Bug 59002] New: I'm getting below exception when I have try to
create workbook using inputstream of xls file .
https://bz.apache.org/bugzilla/show_bug.cgi?id=59002
Bug ID: 59002
Summary: I'm getting below exception when I have try to create
workbook using inputstream of xls file .
Product: POI
Version: 3.13-FINAL
Hardware: PC
Status: NEW
Severity: critical
Priority: P2
Component: HSSF
Assignee: dev@poi.apache.org
Reporter: sanjaysaini31@gmail.com
Created attachment 33551
--> https://bz.apache.org/bugzilla/attachment.cgi?id=33551&action=edit
xls file in zip format (I have used that file for making HSSFWorkbook instance.
Exception Occured inside transFormXLS2XLSX :: file Name :: D:/t.xls:: reason
::Expected size 18 but got (0)
org.apache.poi.hssf.record.RecordFormatException: Expected size 18 but got (0)
at
org.apache.poi.hssf.record.CommonObjectDataSubRecord.<init>(CommonObjectDataSubRecord.java:86)
at org.apache.poi.hssf.record.SubRecord.createSubRecord(SubRecord.java:49)
at org.apache.poi.hssf.record.ObjRecord.<init>(ObjRecord.java:93)
at sun.reflect.GeneratedConstructorAccessor9.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at
org.apache.poi.hssf.record.RecordFactory$ReflectionConstructorRecordCreator.create(RecordFactory.java:84)
at
org.apache.poi.hssf.record.RecordFactory.createSingleRecord(RecordFactory.java:334)
at
org.apache.poi.hssf.record.RecordFactoryInputStream.readNextRecord(RecordFactoryInputStream.java:308)
at
org.apache.poi.hssf.record.RecordFactoryInputStream.nextRecord(RecordFactoryInputStream.java:274)
at
org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:478)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:344)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:401)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:382)
at readexcel.Conversion.convertXLS2XLSX(Conversion.java:89)
at readexcel.Conversion.main(Conversion.java:69)
I have trying to convert xls file to xlsx.
wbIn = new HSSFWorkbook(inputStream); // main culprit of the above exception
Code ::::::::::::::::::::::
package readexcel;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.validator.GenericValidator;
import org.apache.poi.POIOLE2TextExtractor;
import org.apache.poi.POITextExtractor;
import org.apache.poi.extractor.ExtractorFactory;
import org.apache.poi.hssf.record.RecordFactory;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPalette;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFPicture;
import org.apache.poi.hssf.usermodel.HSSFPictureData;
import org.apache.poi.hssf.usermodel.HSSFShape;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.hssf.util.PaneInformation;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Footer;
import org.apache.poi.ss.usermodel.Header;
import org.apache.poi.ss.usermodel.PrintSetup;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import org.apache.poi.xssf.usermodel.XSSFPictureData;
import org.apache.poi.xssf.usermodel.XSSFShape;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
import
org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTTwoCellAnchor;
public class Conversion {
//TODO
private static final int ZOOM_FACTOR_NUMERATOR = 1;
private static final int ZOOM_FACTOR_DENOMINATOR = 1;
public static void main(String args[]){
new Conversion().convertXLS2XLSX();
}
//private transient static Log log =
LogFactory.getLog(FileConversionUtil.class);
//public String convertXLS2XLSX(InputStream inputStream,String
xlsFilePath){
public String convertXLS2XLSX(){
Map cellStyleMap = new HashMap();
String xlsFilePath ="D:/DD.xls";
System.out.println("::::"+xlsFilePath);
String xlsxFilePath = null;
InputStream inputStream = null;
Workbook wbIn = null;
File xlsxFile= null;
Workbook wbOut = null;
OutputStream out = null;
try {
inputStream = new BufferedInputStream(new
FileInputStream(xlsFilePath));
wbIn = new HSSFWorkbook(inputStream);
if(GenericValidator.isBlankOrNull(xlsFilePath)&&inputStream==null)
return null;
else
xlsxFilePath =
xlsFilePath.substring(0,xlsFilePath.lastIndexOf('.'))+".xlsx";
wbIn = new HSSFWorkbook(inputStream);
xlsxFile = new File(xlsxFilePath);
if (xlsxFile.exists())
xlsxFile.delete();
wbOut = new XSSFWorkbook();
Map fontMap = createFontForXLSXWorkSheet(wbOut,wbIn);
int sheetCnt = wbIn.getNumberOfSheets();
for (int i = 0; i < sheetCnt; i++) {
Sheet sIn = wbIn.getSheetAt(i);
Sheet sOut = wbOut.createSheet(sIn.getSheetName());
copySheetProperties(sOut,sIn);
Iterator<Row> rowIt = sIn.rowIterator();
while (rowIt.hasNext()) {
Row rowIn = rowIt.next();
Row rowOut = sOut.createRow(rowIn.getRowNum());
copyRowProperties(rowOut,rowIn,fontMap,cellStyleMap);
}
}
out = new BufferedOutputStream(new FileOutputStream(xlsxFile));
wbOut.write(out);
}catch(Exception ex){
System.out.println("Exception Occured inside transFormXLS2XLSX ::
file Name :: "+xlsFilePath + ":: reason ::"+ ex.getMessage());
ex.printStackTrace();
xlsxFilePath =null;
}finally {
try{
if(wbOut!=null)
wbOut.close();
if(wbIn!=null)
wbIn.close();
if(out!=null)
out.close();
if(inputStream!=null)
inputStream.close();
}catch(Exception ex){
ex.printStackTrace();
xlsxFilePath =null;
}
}
return xlsxFilePath;
}
public void copySheetProperties(Sheet sOut,Sheet sIn){
sOut.setZoom(ZOOM_FACTOR_NUMERATOR,ZOOM_FACTOR_DENOMINATOR);//set 100%
zoom on sheet
List<CellRangeAddress>cellRangeAddresssList = sIn.getMergedRegions();
if(cellRangeAddresssList!=null){
for(int i=0;i<cellRangeAddresssList.size();i++){
CellRangeAddress copyCellRegion =
cellRangeAddresssList.get(i);
int firstRow = copyCellRegion.getFirstRow();
int lasRow = copyCellRegion.getLastRow();
int firstColumn = copyCellRegion.getFirstColumn();
int lastColumn =copyCellRegion.getLastColumn();
if(firstRow<=lasRow && firstColumn <= lastColumn){
CellRangeAddress cellRegion = new
CellRangeAddress(copyCellRegion.getFirstRow(),copyCellRegion.getLastRow(),copyCellRegion.getFirstColumn(),copyCellRegion.getLastColumn());
sOut.addMergedRegion(cellRegion);
}
}
}
PaneInformation paneInformation = sIn.getPaneInformation();
if(paneInformation!=null){
if(paneInformation.isFreezePane()){
sOut.createFreezePane(paneInformation.getVerticalSplitLeftColumn(),paneInformation.getHorizontalSplitTopRow());
}else{
sOut.createSplitPane(paneInformation.getHorizontalSplitPosition(),
paneInformation.getVerticalSplitPosition(),
paneInformation.getVerticalSplitLeftColumn(),paneInformation.getHorizontalSplitTopRow(),paneInformation.getActivePane());
}
}
copyPictures(sOut,sIn);
sOut.setVerticallyCenter(sIn.getVerticallyCenter());
sOut.setHorizontallyCenter(sIn.getHorizontallyCenter());
sOut.setDisplayRowColHeadings(sIn.isDisplayRowColHeadings());
sOut.setDisplayFormulas(sIn.isDisplayFormulas());
sOut.setDisplayZeros(sIn.isDisplayZeros());
sOut.setRightToLeft(sIn.isRightToLeft());
int [] rowBreaks = sIn.getRowBreaks();
int [] colBreaks = sIn.getColumnBreaks();
if(rowBreaks!=null){
for(int row : rowBreaks){
sOut.setRowBreak(row);
}
}
if(colBreaks!=null){
for(int column : colBreaks){
sOut.setColumnBreak(column);
}
}
sOut.setAutobreaks(sIn.getAutobreaks());
sOut.setDefaultRowHeight(sIn.getDefaultRowHeight());
sOut.setDefaultRowHeightInPoints(sIn.getDefaultRowHeightInPoints());
sOut.setDefaultColumnWidth(sIn.getDefaultColumnWidth());
sOut.setRowSumsRight(sIn.getRowSumsRight());
sOut.setRowSumsBelow(sIn.getRowSumsBelow());
sOut.setDisplayGuts(sIn.getDisplayGuts());
sOut.setDisplayGridlines(sIn.isDisplayGridlines());
sOut.setRepeatingColumns(sIn.getRepeatingColumns());
sOut.setSelected(sIn.isSelected());
sOut.setMargin(Sheet.LeftMargin,sIn.getMargin(Sheet.LeftMargin));
sOut.setMargin(Sheet.RightMargin,sIn.getMargin(Sheet.RightMargin));
sOut.setMargin(Sheet.TopMargin,sIn.getMargin(Sheet.TopMargin));
sOut.setMargin(Sheet.BottomMargin,sIn.getMargin(Sheet.BottomMargin));
PrintSetup sInPrintSetup = sIn.getPrintSetup();
PrintSetup sOutPrintSetup = sOut.getPrintSetup();
sOutPrintSetup.setPaperSize(sInPrintSetup.getPaperSize());
if(sInPrintSetup.getScale()>10&&sInPrintSetup.getScale()<400)
sOutPrintSetup.setScale(sInPrintSetup.getScale());
sOutPrintSetup.setPageStart(sInPrintSetup.getPageStart());
sOutPrintSetup.setFitWidth(sInPrintSetup.getFitWidth());
sOutPrintSetup.setFitHeight(sInPrintSetup.getFitHeight());
sOutPrintSetup.setLeftToRight(sInPrintSetup.getLeftToRight());
sOutPrintSetup.setLandscape(sInPrintSetup.getLandscape());
sOutPrintSetup.setValidSettings(sInPrintSetup.getValidSettings());
sOutPrintSetup.setNoColor(sInPrintSetup.getNoColor());
sOutPrintSetup.setDraft(sInPrintSetup.getDraft());
sOutPrintSetup.setNotes(sInPrintSetup.getNotes());
sOutPrintSetup.setNoOrientation(sInPrintSetup.getNoOrientation());
sOutPrintSetup.setUsePage(sInPrintSetup.getUsePage());
sOutPrintSetup.setHResolution(sInPrintSetup.getHResolution());
sOutPrintSetup.setVResolution(sInPrintSetup.getVResolution());
sOutPrintSetup.setHeaderMargin(sInPrintSetup.getHeaderMargin());
sOutPrintSetup.setFooterMargin(sInPrintSetup.getFooterMargin());
sOutPrintSetup.setCopies(sInPrintSetup.getCopies());
Header sInHeader = sIn.getHeader();
Header sOutHeader = sOut.getHeader();
sOutHeader.setCenter(sInHeader.getCenter());
sOutHeader.setLeft(sInHeader.getLeft());
sOutHeader.setRight(sInHeader.getRight());
Footer sInFooter = sIn.getFooter();
Footer sOutFooter = sOut.getFooter();
sOutFooter.setCenter(sInFooter.getCenter());
sOutFooter.setLeft(sInFooter.getLeft());
sOutFooter.setRight(sInFooter.getRight());
}
public void copyRowProperties(Row rowOut,Row rowIn,Map fontMap,Map
cellStyleMap){
rowOut.setRowStyle(rowIn.getRowStyle());
rowOut.setRowNum(rowIn.getRowNum());
rowOut.setHeight(rowIn.getHeight());
rowOut.setHeightInPoints(rowIn.getHeightInPoints());
rowOut.setZeroHeight(rowIn.getZeroHeight());
Iterator<Cell> cellIt = rowIn.cellIterator();
while (cellIt.hasNext()) {
Cell cellIn = cellIt.next();
Cell cellOut = rowOut.createCell(cellIn.getColumnIndex(),
cellIn.getCellType());
rowOut.getSheet().setColumnWidth(cellOut.getColumnIndex(),rowIn.getSheet().getColumnWidth(cellIn.getColumnIndex()));
copyCellProperties(cellOut,cellIn,fontMap,cellStyleMap);
}
}
public void copyCellProperties(Cell cellOut,Cell cellIn,Map fontMap,Map
cellStyleMap){
Workbook wbOut = cellOut.getSheet().getWorkbook();
HSSFPalette hssfPalette =
((HSSFWorkbook)cellIn.getSheet().getWorkbook()).getCustomPalette();
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;
}
HSSFCellStyle styleIn = (HSSFCellStyle) cellIn.getCellStyle();
XSSFCellStyle styleOut = null;
if(cellStyleMap.get(styleIn.getIndex())!=null){
styleOut = (XSSFCellStyle)cellStyleMap.get(styleIn.getIndex());
}
else{
styleOut = (XSSFCellStyle) wbOut.createCellStyle();
styleOut.setAlignment(styleIn.getAlignment());
short fontIndex = styleIn.getFontIndex();
Font font = (Font)fontMap.get(fontIndex);
if(font==null){
font = wbOut.createFont();
font.setColor(HSSFColor.BLACK.index);
fontMap.put(font.getIndex(),font);
}
DataFormat format = wbOut.createDataFormat();
styleOut.setDataFormat(format.getFormat(styleIn.getDataFormatString()));
HSSFColor forgroundColor = (HSSFColor)
styleIn.getFillForegroundColorColor();
if(forgroundColor!=null){
short [] foregroundColorValues = forgroundColor.getTriplet();
styleOut.setFillForegroundColor(new XSSFColor(new
java.awt.Color(foregroundColorValues[0], foregroundColorValues[1],
foregroundColorValues[2])));
styleOut.setFillPattern(styleIn.getFillPattern());
}
styleOut.setFillPattern(styleIn.getFillPattern());
styleOut.setBorderBottom(styleIn.getBorderBottom());
styleOut.setBorderLeft(styleIn.getBorderLeft());
styleOut.setBorderRight(styleIn.getBorderRight());
styleOut.setBorderTop(styleIn.getBorderTop());
HSSFColor bottom =
hssfPalette.getColor(styleIn.getBottomBorderColor());
if(bottom!=null){
short [] bottomColorArray = bottom.getTriplet();
styleOut.setBottomBorderColor(new XSSFColor(new
java.awt.Color(bottomColorArray[0], bottomColorArray[1],
bottomColorArray[2])));
}
HSSFColor top = hssfPalette.getColor(styleIn.getTopBorderColor());
if(top!=null){
short [] topColorArray =top.getTriplet();
styleOut.setTopBorderColor(new XSSFColor(new
java.awt.Color(topColorArray[0],topColorArray[1],topColorArray[2])));
}
HSSFColor left =
hssfPalette.getColor(styleIn.getLeftBorderColor());
if(left!=null){
short [] leftColorArray = left.getTriplet();
styleOut.setLeftBorderColor(new XSSFColor(new
java.awt.Color(leftColorArray[0],leftColorArray[1],leftColorArray[2])));
}
HSSFColor right =
hssfPalette.getColor(styleIn.getRightBorderColor());
if(right!=null){
short [] rightColorArray= right.getTriplet();
styleOut.setRightBorderColor(new XSSFColor(new
java.awt.Color(rightColorArray[0],rightColorArray[1],rightColorArray[2])));
}
styleOut.setVerticalAlignment(styleIn.getVerticalAlignment());
styleOut.setHidden(styleIn.getHidden());
styleOut.setIndention(styleIn.getIndention());
styleOut.setLocked(styleIn.getLocked());
styleOut.setRotation(styleIn.getRotation());
styleOut.setShrinkToFit(styleIn.getShrinkToFit());
styleOut.setVerticalAlignment(styleIn.getVerticalAlignment());
styleOut.setWrapText(styleIn.getWrapText());
styleOut.setFont(font);
cellOut.setCellComment(cellIn.getCellComment());
cellStyleMap.put(styleIn.getIndex(),styleOut);
}
cellOut.setCellStyle(styleOut);
}
private void copyPictures(Sheet sOut, Sheet sIn) {
try{
if(sOut!=null && sIn!=null){
Drawing drawingOld = sIn.createDrawingPatriarch();
Drawing drawingNew = sOut.createDrawingPatriarch();
CreationHelper helper = sOut.getWorkbook().getCreationHelper();
if (drawingOld instanceof HSSFPatriarch) {
List<HSSFShape> shapes = ((HSSFPatriarch)
drawingOld).getChildren();
for (int i = 0; i < shapes.size(); i++) {
if (shapes.get(i) instanceof HSSFPicture) {
HSSFPicture pic = (HSSFPicture) shapes.get(i);
HSSFPictureData picdata = pic.getPictureData();
int pictureIndex =
sOut.getWorkbook().addPicture(picdata.getData(), picdata.getFormat());
ClientAnchor anchor = null;
if (pic.getAnchor() != null) {
anchor = helper.createClientAnchor();
anchor.setDx1(((HSSFClientAnchor)
pic.getAnchor()).getDx1());
anchor.setDx2(((HSSFClientAnchor)
pic.getAnchor()).getDx2());
anchor.setDy1(((HSSFClientAnchor)
pic.getAnchor()).getDy1());
anchor.setDy2(((HSSFClientAnchor)
pic.getAnchor()).getDy2());
anchor.setCol1(((HSSFClientAnchor)
pic.getAnchor()).getCol1());
anchor.setCol2(((HSSFClientAnchor)
pic.getAnchor()).getCol2());
anchor.setRow1(((HSSFClientAnchor)
pic.getAnchor()).getRow1());
anchor.setRow2(((HSSFClientAnchor)
pic.getAnchor()).getRow2());
anchor.setAnchorType(((HSSFClientAnchor)
pic.getAnchor()).getAnchorType());
}
drawingNew.createPicture(anchor, pictureIndex);
}
}
} else {
if (drawingNew instanceof XSSFDrawing) {
List<XSSFShape> shapes = ((XSSFDrawing)
drawingOld).getShapes();
for (int i = 0; i < shapes.size(); i++) {
if (shapes.get(i) instanceof XSSFPicture) {
XSSFPicture pic = (XSSFPicture) shapes.get(i);
XSSFPictureData picdata = pic.getPictureData();
int pictureIndex =
sOut.getWorkbook().addPicture(picdata.getData(), picdata.getPictureType());
XSSFClientAnchor anchor = null;
CTTwoCellAnchor oldAnchor = ((XSSFDrawing)
drawingOld).getCTDrawing().getTwoCellAnchorArray(i);
if (oldAnchor != null) {
anchor = (XSSFClientAnchor)
helper.createClientAnchor();
CTMarker markerFrom = oldAnchor.getFrom();
CTMarker markerTo = oldAnchor.getTo();
anchor.setDx1((int)
markerFrom.getColOff());
anchor.setDx2((int) markerTo.getColOff());
anchor.setDy1((int)
markerFrom.getRowOff());
anchor.setDy2((int) markerTo.getRowOff());
anchor.setCol1(markerFrom.getCol());
anchor.setCol2(markerTo.getCol());
anchor.setRow1(markerFrom.getRow());
anchor.setRow2(markerTo.getRow());
}
drawingNew.createPicture(anchor, pictureIndex);
}
}
}
}
}
}catch(Exception ex){
ex.printStackTrace();
}
}
public Map createFontForXLSXWorkSheet(Workbook XLSXWorkbook,Workbook
XLSWorkbook){
Map fontMap = new HashMap();
try{
if(XLSXWorkbook!=null && XLSWorkbook!=null){
short totalNoOfFontsUsed = XLSWorkbook.getNumberOfFonts();
if(totalNoOfFontsUsed!=0){
for(short i=0;i<=totalNoOfFontsUsed;i++){
Font xlsFont = XLSWorkbook.getFontAt(i);
Font xlsxFont = XLSXWorkbook.createFont();
BeanUtils.copyProperties(xlsxFont, xlsFont);
fontMap.put(xlsFont.getIndex(), xlsxFont);
}
}
}
}catch(Exception ex){
ex.printStackTrace();
}
return fontMap;
}
}
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org
[Bug 59002] I'm getting below exception when I have try to create
workbook using inputstream of xls file .
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=59002
--- Comment #4 from Tim Allison <ta...@mitre.org> ---
Question asked on SO:
http://stackoverflow.com/questions/35298310/org-apache-poi-hssf-record-recordformatexception-expected-size-18-but-got-0
Response there, also: potentially corrupt file, although LibreOffice is able to
open it.
Note, too, that from
https://www.mail-archive.com/dev@poi.apache.org/msg12584.html, it looks like we
used to get this exception from 43493.xls (if I read that list correctly), but
we're now getting a different exception for that file. 43493 was closed as
"won't fix" because the file was corrupt.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org
[Bug 59002] RecordFormatException: Expected size 18 but got (0) when
opening workbook
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=59002
Dominik Stadler <do...@gmx.at> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |INVALID
Status|NEW |RESOLVED
Summary|I'm getting below exception |RecordFormatException:
|when I have try to create |Expected size 18 but got
|workbook using inputstream |(0) when opening workbook
|of xls file . |
--- Comment #5 from Dominik Stadler <do...@gmx.at> ---
I don't think it much use to try to read files which Excel itself marks as
"corrupt", I strongly suggest you fix how the files are created in the first
place to not have to "fix" the symptoms of a corrupted file later. Please feel
free to submit a patch for this issue if you find out how this can be handled
gracefully in POI then we can see if it makes sense to handle this more
gracefully in POI.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org
[Bug 59002] I'm getting below exception when I have try to create
workbook using inputstream of xls file .
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=59002
--- Comment #1 from Sanjay saini <sa...@gmail.com> ---
Created attachment 33552
--> https://bz.apache.org/bugzilla/attachment.cgi?id=33552&action=edit
Code Used for reading or writing
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org
[Bug 59002] I'm getting below exception when I have try to create
workbook using inputstream of xls file .
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=59002
--- Comment #3 from Tim Allison <ta...@mitre.org> ---
I regret that I can't actually help.
I agree with your diagnosis, the problem is that POI can't read/open this file
either with the event listener model or with your method:
wbIn = new HSSFWorkbook(inputStream); // main culprit of the above exception
When I try to open the attached file in Excel, I get an "Office has detected a
problem with this file" message, and Excel sternly warns me not to edit it.
I don't know enough about the underlying POI/Excel code (ObjRecord,SubRecord)
to be able to help.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org
[Bug 59002] I'm getting below exception when I have try to create
workbook using inputstream of xls file .
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=59002
--- Comment #2 from Sanjay saini <sa...@gmail.com> ---
Any one please can help me?
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org
[Bug 59002] I'm getting below exception when I have try to create
workbook using inputstream of xls file .
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=59002
Sanjay saini <sa...@gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
OS| |All
CC| |sanjaysaini31@gmail.com
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org