Hi,

I had a piece of code working fine that converted an excel sheet to csv
(file extension is csv but underlying content type
"application/vnd.ms-excel";/). This worked fine when the CSV file was
generated on old Excel (pre 2010), but no matter what I do in windows
7/office 2010 the contenttype is always excel -- even if I use other
applications to generate the CSV! As a result of content type being
excel... it goes through below code to extract the data... but always fails
on WorkbookFactory.create(inputStream);

Workbook wb = WorkbookFactory.create(inputStream);

and it throws an exception telling me "Your InputStream was neither an OLE2
stream, nor an OOXML stream"


ByteArrayInputStream convertExcelWorkbookToCSV(InputStream inputStream,
UploaderService uploaderService) throws IOException, InvalidFormatException
{

//        ByteArrayInputStream bs=new
ByteArrayInputStream(IOUtils.toByteArray(inputStream));
 Workbook wb = WorkbookFactory.create(inputStream); //fails here

        System.out.println("WB: "+wb);


 for(int i=0;i<wb.getNumberOfSheets();i++) {

//just do 1st sheet for now
return convertExcelSheetToCSV(wb.getSheetAt(0), uploaderService);
 }


Caused by: java.lang.IllegalArgumentException: Your InputStream was neither
an OLE2 stream, nor an OOXML stream
at
org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:81)
[poi-ooxml-3.10-FINAL.jar:3.10-FINAL]
        at
com.vadar.data.CsvUtils.convertExcelWorkbookToCSV(CsvUtils.java:50)
[VolteneoDemoApp-processing-ejb-1.0.1-SNAPSHOT.jar:]
        at
com.vadar.data.UploaderService.processCsvFile(UploaderService.java:85)
[VolteneoDemoApp-processing-ejb-1.0.1-SNAPSHOT.jar:]
        at
com.vadar.data.UploaderService.processFileRequest(UploaderService.java:71)
[VolteneoDemoApp-processing-ejb-1.0.1-SNAPSHOT.jar:]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[rt.jar:1.7.0_55]
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_55]
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_55]
        at java.lang.reflect.Method.invoke(Method.java:606)
[rt.jar:1.7.0_55]
        at
org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final

Any help much appreciated..

W

Reply via email to