You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@poi.apache.org by Syed Mudassir Ahmed <sy...@gaianconsultants.com> on 2018/05/15 07:19:33 UTC

Is it POI error starting 3.14 version onwards

Hi,
  I am trying to read data from a XLSX sheet via XSSFSheetXMLHandler.  The
source code is below.

  public static void main(String str[]) throws Exception {
        String filePath
                = "/home/gaian/Desktop/salary.xlsx";
        File file = new File(filePath);
        InputStream inputStream = new FileInputStream(file);
        OPCPackage pkg = OPCPackage.open(inputStream);

        SheetContentsHandler sheetContentsHandler = new
SheetContentsHandler() {
            @Override
            public void startRow(int rowIndex) {
            }

            @Override
            public void endRow(int i) {
            }

            @Override
            public void cell(String cell, String formattedValue,
XSSFComment c) {
                System.out.println("cell encountered with addess:<" + cell
                        + "> and value:<" + formattedValue + ">");
            }

            @Override
            public void headerFooter(String text, boolean isHeader, String
tagName) {
                System.out.println("headerFooter()");
            }
        };

        ReadOnlySharedStringsTable strings = new
ReadOnlySharedStringsTable(pkg);
        XSSFReader xssfReader = new XSSFReader(pkg);
        StylesTable styles = xssfReader.getStylesTable();
        XSSFReader.SheetIterator worksheets = (XSSFReader.SheetIterator)
xssfReader.getSheetsData();
        InputStream stream = worksheets.next();
        SAXParserFactory saxFactory = SAXParserFactory.newInstance();
        XMLReader sheetParser = saxFactory.newSAXParser().getXMLReader();

        ContentHandler handler
                = new XSSFSheetXMLHandler(styles, strings,
sheetContentsHandler, false);

        sheetParser.setContentHandler(handler);
        sheetParser.parse(new InputSource(stream));
    }

  When I use the POI version 3.13, I am getting the following output:

cell encountered with addess:<A1> and value:<Salary>
cell encountered with addess:<A2> and value:<99.965432>

  The moment I switch to version 3.14 or higher, I am no longer getting any
output.

  Can someone pls let me know if any more code changes needed if I switch
to 3.14 or higher?  I even checked the test cases in Apache POI 3.17
sources but was shocked not to find any there.  Any example/references that
I can go through pls?  This is blocker for one of my applications.


Thanks,

Re: Is it POI error starting 3.14 version onwards

Posted by "pj.fanning" <fa...@yahoo.com>.
https://github.com/apache/poi/blob/trunk/src/ooxml/java/org/apache/poi/util/SAXHelper.java

org.apache.poi.util.SAXHelper has a newXMLReader() method that creates an
XMLReader instance that satisfies the requirements for this use case.



--
Sent from: http://apache-poi.1045710.n5.nabble.com/POI-User-f2280730.html

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org


Re: Is it POI error starting 3.14 version onwards

Posted by "pj.fanning" <fa...@yahoo.com>.
https://github.com/apache/poi/blob/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/examples/FromHowTo.java

https://github.com/apache/poi/blob/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/XLSX2CSV.java

These are our 2 main streaming xlsx reading examples and both use SAXHelper
to create the XMLReader (already).



--
Sent from: http://apache-poi.1045710.n5.nabble.com/POI-User-f2280730.html

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org


RE: Is it POI error starting 3.14 version onwards

Posted by "Murphy, Mark" <mu...@metalexmfg.com>.
You need to apply a style to the cell. The style can include a number format.

DataFormat format = workbook.createDataFormat();
short fmt = format.getFormat("#0.0");
CellStyle style = workbook.createCellStyle();
style.setDataFormat(fmt);

…
cell.setCellStyle(style);


From: Syed Mudassir Ahmed [mailto:syed.mudassir@gaianconsultants.com]
Sent: Wednesday, May 16, 2018 11:56 PM
To: POI Users List <us...@poi.apache.org>
Subject: Re: Is it POI error starting 3.14 version onwards

And one more thing, this is my source code:

public static void main(String str[]) throws Exception {
        Map<String, Object> input = new LinkedHashMap<>();
        SXSSFWorkbook workbook = new SXSSFWorkbook();
        OutputStream os = new FileOutputStream(
                new File("/home/gaian/Desktop/Sal.xlsx"));
        workbook.setCompressTempFiles(true);
        SXSSFSheet sheet = workbook.createSheet("firstSheet");
        SXSSFRow row = sheet.createRow(0);
        SXSSFCell cell = row.createCell(0);
        cell.setCellValue("salary");
        cell.setCellType(CellType.STRING);
        row = sheet.createRow(1);
        cell = row.createCell(0);
        cell.setCellValue(new Double("4.0"));
        cell.setCellType(CellType.NUMERIC);
        workbook.write(os);
        os.close();
        workbook.close();
        System.out.println("done creating excel workbook...");
    }

I am creating a workbook and writing a value (4.0) as double in a sheet.  But when I open the sheet, I see the integral value 4 instead of decimal 4.0.

Any settings I need to do in my code to get the value 4.0?

Thanks.

Thanks,
[cid:ii_14fd4e82bb9756bc]

On Thu, May 17, 2018 at 9:07 AM, Syed Mudassir Ahmed <sy...@gaianconsultants.com>> wrote:
Thanks so much Tim and Fanning.  Both of your suggestions are working out.  I would suggest better to have such example in the test case section of your source folder.

Thanks,
[cid:ii_14fd4e82bb9756bc]

On Wed, May 16, 2018 at 6:49 PM, Tim Allison <ta...@apache.org>> wrote:
You need to make your SAXReader namespace aware:

            saxFactory.setNamespaceAware(true);


On Wed, May 16, 2018 at 8:59 AM, Tim Allison <ta...@apache.org>> wrote:

> Sorry for my delay.  I just tested your file with Apache Tika 1.18 which
> uses POI 3.17..., and I got:
>
>
> <body><div><h1>Sheet1</h1>
> <table><tbody><tr>      <td>Salary</td></tr>
> <tr>    <td>99.965432</td></tr>
> </tbody></table>
> </div>
> <div><h1>Sheet2</h1>
> <table><tbody/></table>
> </div>
> <div><h1>Sheet3</h1>
> <table><tbody/></table>
> </div>
> </body></html>
>
> That's promising...  Let me take a look at your example code.
>
> On Wed, May 16, 2018 at 1:31 AM, Syed Mudassir Ahmed <syed.mudassir@
<mailto:syed.mudassir@%0b>> gaianconsultants.com<http://gaianconsultants.com>> wrote:
>
>> any update on this pls?  This is blocking me.
>>
>> Thanks,
>>
>>
>> On Tue, May 15, 2018 at 3:45 PM, Syed Mudassir Ahmed <
>> syed.mudassir@gaianconsultants.com<ma...@gaianconsultants.com>> wrote:
>>
>>> Yes, pls find the file attached here.
>>>
>>> Thanks,
>>>
>>>
>>> On Tue, May 15, 2018 at 3:43 PM, Tim Allison <ta...@apache.org>>
>>> wrote:
>>>
>>>> Any chanc you can share the file?
>>>>
>>>> On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
>>>> syed.mudassir@gaianconsultants.com<ma...@gaianconsultants.com>> wrote:
>>>>
>>>> > Hi,
>>>> >   I am trying to read data from a XLSX sheet via
>>>> XSSFSheetXMLHandler.  The
>>>> > source code is below.
>>>> >
>>>> >   public static void main(String str[]) throws Exception {
>>>> >         String filePath
>>>> >                 = "/home/gaian/Desktop/salary.xlsx";
>>>> >         File file = new File(filePath);
>>>> >         InputStream inputStream = new FileInputStream(file);
>>>> >         OPCPackage pkg = OPCPackage.open(inputStream);
>>>> >
>>>> >         SheetContentsHandler sheetContentsHandler = new
>>>> > SheetContentsHandler() {
>>>> >             @Override
>>>> >             public void startRow(int rowIndex) {
>>>> >             }
>>>> >
>>>> >             @Override
>>>> >             public void endRow(int i) {
>>>> >             }
>>>> >
>>>> >             @Override
>>>> >             public void cell(String cell, String formattedValue,
>>>> > XSSFComment c) {
>>>> >                 System.out.println("cell encountered with addess:<" +
>>>> cell
>>>> >                         + "> and value:<" + formattedValue + ">");
>>>> >             }
>>>> >
>>>> >             @Override
>>>> >             public void headerFooter(String text, boolean isHeader,
>>>> String
>>>> > tagName) {
>>>> >                 System.out.println("headerFooter()");
>>>> >             }
>>>> >         };
>>>> >
>>>> >         ReadOnlySharedStringsTable strings = new
>>>> > ReadOnlySharedStringsTable(pkg);
>>>> >         XSSFReader xssfReader = new XSSFReader(pkg);
>>>> >         StylesTable styles = xssfReader.getStylesTable();
>>>> >         XSSFReader.SheetIterator worksheets =
>>>> (XSSFReader.SheetIterator)
>>>> > xssfReader.getSheetsData();
>>>> >         InputStream stream = worksheets.next();
>>>> >         SAXParserFactory saxFactory = SAXParserFactory.newInstance();
>>>> >         XMLReader sheetParser = saxFactory.newSAXParser().getX
>>>> MLReader();
>>>> >
>>>> >         ContentHandler handler
>>>> >                 = new XSSFSheetXMLHandler(styles, strings,
>>>> > sheetContentsHandler, false);
>>>> >
>>>> >         sheetParser.setContentHandler(handler);
>>>> >         sheetParser.parse(new InputSource(stream));
>>>> >     }
>>>> >
>>>> >   When I use the POI version 3.13, I am getting the following output:
>>>> >
>>>> > cell encountered with addess:<A1> and value:<Salary>
>>>> > cell encountered with addess:<A2> and value:<99.965432>
>>>> >
>>>> >   The moment I switch to version 3.14 or higher, I am no longer
>>>> getting
>>>> > any output.
>>>> >
>>>> >   Can someone pls let me know if any more code changes needed if I
>>>> switch
>>>> > to 3.14 or higher?  I even checked the test cases in Apache POI 3.17
>>>> > sources but was shocked not to find any there.  Any
>>>> example/references that
>>>> > I can go through pls?  This is blocker for one of my applications.
>>>> >
>>>> >
>>>> > Thanks,
>>>> >
>>>> >
>>>>
>>>
>>>
>>
>



Re: Is it POI error starting 3.14 version onwards

Posted by Syed Mudassir Ahmed <sy...@gaianconsultants.com>.
And one more thing, this is my source code:

public static void main(String str[]) throws Exception {
        Map<String, Object> input = new LinkedHashMap<>();
        SXSSFWorkbook workbook = new SXSSFWorkbook();
        OutputStream os = new FileOutputStream(
                new File("/home/gaian/Desktop/Sal.xlsx"));
        workbook.setCompressTempFiles(true);
        SXSSFSheet sheet = workbook.createSheet("firstSheet");
        SXSSFRow row = sheet.createRow(0);
        SXSSFCell cell = row.createCell(0);
        cell.setCellValue("salary");
        cell.setCellType(CellType.STRING);
        row = sheet.createRow(1);
        cell = row.createCell(0);
        cell.setCellValue(new Double("4.0"));
        cell.setCellType(CellType.NUMERIC);
        workbook.write(os);
        os.close();
        workbook.close();
        System.out.println("done creating excel workbook...");
    }

I am creating a workbook and writing a value (4.0) as double in a sheet.
But when I open the sheet, I see the integral value 4 instead of decimal
4.0.

Any settings I need to do in my code to get the value 4.0?

Thanks.

Thanks,


On Thu, May 17, 2018 at 9:07 AM, Syed Mudassir Ahmed <
syed.mudassir@gaianconsultants.com> wrote:

> Thanks so much Tim and Fanning.  Both of your suggestions are working
> out.  I would suggest better to have such example in the test case section
> of your source folder.
>
> Thanks,
>
>
> On Wed, May 16, 2018 at 6:49 PM, Tim Allison <ta...@apache.org> wrote:
>
>> You need to make your SAXReader namespace aware:
>>
>>             saxFactory.setNamespaceAware(true);
>>
>>
>> On Wed, May 16, 2018 at 8:59 AM, Tim Allison <ta...@apache.org> wrote:
>>
>> > Sorry for my delay.  I just tested your file with Apache Tika 1.18 which
>> > uses POI 3.17..., and I got:
>> >
>> >
>> > <body><div><h1>Sheet1</h1>
>> > <table><tbody><tr>      <td>Salary</td></tr>
>> > <tr>    <td>99.965432</td></tr>
>> > </tbody></table>
>> > </div>
>> > <div><h1>Sheet2</h1>
>> > <table><tbody/></table>
>> > </div>
>> > <div><h1>Sheet3</h1>
>> > <table><tbody/></table>
>> > </div>
>> > </body></html>
>> >
>> > That's promising...  Let me take a look at your example code.
>> >
>> > On Wed, May 16, 2018 at 1:31 AM, Syed Mudassir Ahmed <syed.mudassir@
>> > gaianconsultants.com> wrote:
>> >
>> >> any update on this pls?  This is blocking me.
>> >>
>> >> Thanks,
>> >>
>> >>
>> >> On Tue, May 15, 2018 at 3:45 PM, Syed Mudassir Ahmed <
>> >> syed.mudassir@gaianconsultants.com> wrote:
>> >>
>> >>> Yes, pls find the file attached here.
>> >>>
>> >>> Thanks,
>> >>>
>> >>>
>> >>> On Tue, May 15, 2018 at 3:43 PM, Tim Allison <ta...@apache.org>
>> >>> wrote:
>> >>>
>> >>>> Any chanc you can share the file?
>> >>>>
>> >>>> On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
>> >>>> syed.mudassir@gaianconsultants.com> wrote:
>> >>>>
>> >>>> > Hi,
>> >>>> >   I am trying to read data from a XLSX sheet via
>> >>>> XSSFSheetXMLHandler.  The
>> >>>> > source code is below.
>> >>>> >
>> >>>> >   public static void main(String str[]) throws Exception {
>> >>>> >         String filePath
>> >>>> >                 = "/home/gaian/Desktop/salary.xlsx";
>> >>>> >         File file = new File(filePath);
>> >>>> >         InputStream inputStream = new FileInputStream(file);
>> >>>> >         OPCPackage pkg = OPCPackage.open(inputStream);
>> >>>> >
>> >>>> >         SheetContentsHandler sheetContentsHandler = new
>> >>>> > SheetContentsHandler() {
>> >>>> >             @Override
>> >>>> >             public void startRow(int rowIndex) {
>> >>>> >             }
>> >>>> >
>> >>>> >             @Override
>> >>>> >             public void endRow(int i) {
>> >>>> >             }
>> >>>> >
>> >>>> >             @Override
>> >>>> >             public void cell(String cell, String formattedValue,
>> >>>> > XSSFComment c) {
>> >>>> >                 System.out.println("cell encountered with
>> addess:<" +
>> >>>> cell
>> >>>> >                         + "> and value:<" + formattedValue + ">");
>> >>>> >             }
>> >>>> >
>> >>>> >             @Override
>> >>>> >             public void headerFooter(String text, boolean isHeader,
>> >>>> String
>> >>>> > tagName) {
>> >>>> >                 System.out.println("headerFooter()");
>> >>>> >             }
>> >>>> >         };
>> >>>> >
>> >>>> >         ReadOnlySharedStringsTable strings = new
>> >>>> > ReadOnlySharedStringsTable(pkg);
>> >>>> >         XSSFReader xssfReader = new XSSFReader(pkg);
>> >>>> >         StylesTable styles = xssfReader.getStylesTable();
>> >>>> >         XSSFReader.SheetIterator worksheets =
>> >>>> (XSSFReader.SheetIterator)
>> >>>> > xssfReader.getSheetsData();
>> >>>> >         InputStream stream = worksheets.next();
>> >>>> >         SAXParserFactory saxFactory =
>> SAXParserFactory.newInstance();
>> >>>> >         XMLReader sheetParser = saxFactory.newSAXParser().getX
>> >>>> MLReader();
>> >>>> >
>> >>>> >         ContentHandler handler
>> >>>> >                 = new XSSFSheetXMLHandler(styles, strings,
>> >>>> > sheetContentsHandler, false);
>> >>>> >
>> >>>> >         sheetParser.setContentHandler(handler);
>> >>>> >         sheetParser.parse(new InputSource(stream));
>> >>>> >     }
>> >>>> >
>> >>>> >   When I use the POI version 3.13, I am getting the following
>> output:
>> >>>> >
>> >>>> > cell encountered with addess:<A1> and value:<Salary>
>> >>>> > cell encountered with addess:<A2> and value:<99.965432>
>> >>>> >
>> >>>> >   The moment I switch to version 3.14 or higher, I am no longer
>> >>>> getting
>> >>>> > any output.
>> >>>> >
>> >>>> >   Can someone pls let me know if any more code changes needed if I
>> >>>> switch
>> >>>> > to 3.14 or higher?  I even checked the test cases in Apache POI
>> 3.17
>> >>>> > sources but was shocked not to find any there.  Any
>> >>>> example/references that
>> >>>> > I can go through pls?  This is blocker for one of my applications.
>> >>>> >
>> >>>> >
>> >>>> > Thanks,
>> >>>> >
>> >>>> >
>> >>>>
>> >>>
>> >>>
>> >>
>> >
>>
>
>

Re: Is it POI error starting 3.14 version onwards

Posted by Syed Mudassir Ahmed <sy...@gaianconsultants.com>.
Thanks so much Tim and Fanning.  Both of your suggestions are working out.
I would suggest better to have such example in the test case section of
your source folder.

Thanks,


On Wed, May 16, 2018 at 6:49 PM, Tim Allison <ta...@apache.org> wrote:

> You need to make your SAXReader namespace aware:
>
>             saxFactory.setNamespaceAware(true);
>
>
> On Wed, May 16, 2018 at 8:59 AM, Tim Allison <ta...@apache.org> wrote:
>
> > Sorry for my delay.  I just tested your file with Apache Tika 1.18 which
> > uses POI 3.17..., and I got:
> >
> >
> > <body><div><h1>Sheet1</h1>
> > <table><tbody><tr>      <td>Salary</td></tr>
> > <tr>    <td>99.965432</td></tr>
> > </tbody></table>
> > </div>
> > <div><h1>Sheet2</h1>
> > <table><tbody/></table>
> > </div>
> > <div><h1>Sheet3</h1>
> > <table><tbody/></table>
> > </div>
> > </body></html>
> >
> > That's promising...  Let me take a look at your example code.
> >
> > On Wed, May 16, 2018 at 1:31 AM, Syed Mudassir Ahmed <syed.mudassir@
> > gaianconsultants.com> wrote:
> >
> >> any update on this pls?  This is blocking me.
> >>
> >> Thanks,
> >>
> >>
> >> On Tue, May 15, 2018 at 3:45 PM, Syed Mudassir Ahmed <
> >> syed.mudassir@gaianconsultants.com> wrote:
> >>
> >>> Yes, pls find the file attached here.
> >>>
> >>> Thanks,
> >>>
> >>>
> >>> On Tue, May 15, 2018 at 3:43 PM, Tim Allison <ta...@apache.org>
> >>> wrote:
> >>>
> >>>> Any chanc you can share the file?
> >>>>
> >>>> On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
> >>>> syed.mudassir@gaianconsultants.com> wrote:
> >>>>
> >>>> > Hi,
> >>>> >   I am trying to read data from a XLSX sheet via
> >>>> XSSFSheetXMLHandler.  The
> >>>> > source code is below.
> >>>> >
> >>>> >   public static void main(String str[]) throws Exception {
> >>>> >         String filePath
> >>>> >                 = "/home/gaian/Desktop/salary.xlsx";
> >>>> >         File file = new File(filePath);
> >>>> >         InputStream inputStream = new FileInputStream(file);
> >>>> >         OPCPackage pkg = OPCPackage.open(inputStream);
> >>>> >
> >>>> >         SheetContentsHandler sheetContentsHandler = new
> >>>> > SheetContentsHandler() {
> >>>> >             @Override
> >>>> >             public void startRow(int rowIndex) {
> >>>> >             }
> >>>> >
> >>>> >             @Override
> >>>> >             public void endRow(int i) {
> >>>> >             }
> >>>> >
> >>>> >             @Override
> >>>> >             public void cell(String cell, String formattedValue,
> >>>> > XSSFComment c) {
> >>>> >                 System.out.println("cell encountered with addess:<"
> +
> >>>> cell
> >>>> >                         + "> and value:<" + formattedValue + ">");
> >>>> >             }
> >>>> >
> >>>> >             @Override
> >>>> >             public void headerFooter(String text, boolean isHeader,
> >>>> String
> >>>> > tagName) {
> >>>> >                 System.out.println("headerFooter()");
> >>>> >             }
> >>>> >         };
> >>>> >
> >>>> >         ReadOnlySharedStringsTable strings = new
> >>>> > ReadOnlySharedStringsTable(pkg);
> >>>> >         XSSFReader xssfReader = new XSSFReader(pkg);
> >>>> >         StylesTable styles = xssfReader.getStylesTable();
> >>>> >         XSSFReader.SheetIterator worksheets =
> >>>> (XSSFReader.SheetIterator)
> >>>> > xssfReader.getSheetsData();
> >>>> >         InputStream stream = worksheets.next();
> >>>> >         SAXParserFactory saxFactory = SAXParserFactory.newInstance()
> ;
> >>>> >         XMLReader sheetParser = saxFactory.newSAXParser().getX
> >>>> MLReader();
> >>>> >
> >>>> >         ContentHandler handler
> >>>> >                 = new XSSFSheetXMLHandler(styles, strings,
> >>>> > sheetContentsHandler, false);
> >>>> >
> >>>> >         sheetParser.setContentHandler(handler);
> >>>> >         sheetParser.parse(new InputSource(stream));
> >>>> >     }
> >>>> >
> >>>> >   When I use the POI version 3.13, I am getting the following
> output:
> >>>> >
> >>>> > cell encountered with addess:<A1> and value:<Salary>
> >>>> > cell encountered with addess:<A2> and value:<99.965432>
> >>>> >
> >>>> >   The moment I switch to version 3.14 or higher, I am no longer
> >>>> getting
> >>>> > any output.
> >>>> >
> >>>> >   Can someone pls let me know if any more code changes needed if I
> >>>> switch
> >>>> > to 3.14 or higher?  I even checked the test cases in Apache POI 3.17
> >>>> > sources but was shocked not to find any there.  Any
> >>>> example/references that
> >>>> > I can go through pls?  This is blocker for one of my applications.
> >>>> >
> >>>> >
> >>>> > Thanks,
> >>>> >
> >>>> >
> >>>>
> >>>
> >>>
> >>
> >
>

Re: Is it POI error starting 3.14 version onwards

Posted by Tim Allison <ta...@apache.org>.
You need to make your SAXReader namespace aware:

            saxFactory.setNamespaceAware(true);


On Wed, May 16, 2018 at 8:59 AM, Tim Allison <ta...@apache.org> wrote:

> Sorry for my delay.  I just tested your file with Apache Tika 1.18 which
> uses POI 3.17..., and I got:
>
>
> <body><div><h1>Sheet1</h1>
> <table><tbody><tr>      <td>Salary</td></tr>
> <tr>    <td>99.965432</td></tr>
> </tbody></table>
> </div>
> <div><h1>Sheet2</h1>
> <table><tbody/></table>
> </div>
> <div><h1>Sheet3</h1>
> <table><tbody/></table>
> </div>
> </body></html>
>
> That's promising...  Let me take a look at your example code.
>
> On Wed, May 16, 2018 at 1:31 AM, Syed Mudassir Ahmed <syed.mudassir@
> gaianconsultants.com> wrote:
>
>> any update on this pls?  This is blocking me.
>>
>> Thanks,
>>
>>
>> On Tue, May 15, 2018 at 3:45 PM, Syed Mudassir Ahmed <
>> syed.mudassir@gaianconsultants.com> wrote:
>>
>>> Yes, pls find the file attached here.
>>>
>>> Thanks,
>>>
>>>
>>> On Tue, May 15, 2018 at 3:43 PM, Tim Allison <ta...@apache.org>
>>> wrote:
>>>
>>>> Any chanc you can share the file?
>>>>
>>>> On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
>>>> syed.mudassir@gaianconsultants.com> wrote:
>>>>
>>>> > Hi,
>>>> >   I am trying to read data from a XLSX sheet via
>>>> XSSFSheetXMLHandler.  The
>>>> > source code is below.
>>>> >
>>>> >   public static void main(String str[]) throws Exception {
>>>> >         String filePath
>>>> >                 = "/home/gaian/Desktop/salary.xlsx";
>>>> >         File file = new File(filePath);
>>>> >         InputStream inputStream = new FileInputStream(file);
>>>> >         OPCPackage pkg = OPCPackage.open(inputStream);
>>>> >
>>>> >         SheetContentsHandler sheetContentsHandler = new
>>>> > SheetContentsHandler() {
>>>> >             @Override
>>>> >             public void startRow(int rowIndex) {
>>>> >             }
>>>> >
>>>> >             @Override
>>>> >             public void endRow(int i) {
>>>> >             }
>>>> >
>>>> >             @Override
>>>> >             public void cell(String cell, String formattedValue,
>>>> > XSSFComment c) {
>>>> >                 System.out.println("cell encountered with addess:<" +
>>>> cell
>>>> >                         + "> and value:<" + formattedValue + ">");
>>>> >             }
>>>> >
>>>> >             @Override
>>>> >             public void headerFooter(String text, boolean isHeader,
>>>> String
>>>> > tagName) {
>>>> >                 System.out.println("headerFooter()");
>>>> >             }
>>>> >         };
>>>> >
>>>> >         ReadOnlySharedStringsTable strings = new
>>>> > ReadOnlySharedStringsTable(pkg);
>>>> >         XSSFReader xssfReader = new XSSFReader(pkg);
>>>> >         StylesTable styles = xssfReader.getStylesTable();
>>>> >         XSSFReader.SheetIterator worksheets =
>>>> (XSSFReader.SheetIterator)
>>>> > xssfReader.getSheetsData();
>>>> >         InputStream stream = worksheets.next();
>>>> >         SAXParserFactory saxFactory = SAXParserFactory.newInstance();
>>>> >         XMLReader sheetParser = saxFactory.newSAXParser().getX
>>>> MLReader();
>>>> >
>>>> >         ContentHandler handler
>>>> >                 = new XSSFSheetXMLHandler(styles, strings,
>>>> > sheetContentsHandler, false);
>>>> >
>>>> >         sheetParser.setContentHandler(handler);
>>>> >         sheetParser.parse(new InputSource(stream));
>>>> >     }
>>>> >
>>>> >   When I use the POI version 3.13, I am getting the following output:
>>>> >
>>>> > cell encountered with addess:<A1> and value:<Salary>
>>>> > cell encountered with addess:<A2> and value:<99.965432>
>>>> >
>>>> >   The moment I switch to version 3.14 or higher, I am no longer
>>>> getting
>>>> > any output.
>>>> >
>>>> >   Can someone pls let me know if any more code changes needed if I
>>>> switch
>>>> > to 3.14 or higher?  I even checked the test cases in Apache POI 3.17
>>>> > sources but was shocked not to find any there.  Any
>>>> example/references that
>>>> > I can go through pls?  This is blocker for one of my applications.
>>>> >
>>>> >
>>>> > Thanks,
>>>> >
>>>> >
>>>>
>>>
>>>
>>
>

Re: Is it POI error starting 3.14 version onwards

Posted by Tim Allison <ta...@apache.org>.
Sorry for my delay.  I just tested your file with Apache Tika 1.18 which
uses POI 3.17..., and I got:


<body><div><h1>Sheet1</h1>
<table><tbody><tr>      <td>Salary</td></tr>
<tr>    <td>99.965432</td></tr>
</tbody></table>
</div>
<div><h1>Sheet2</h1>
<table><tbody/></table>
</div>
<div><h1>Sheet3</h1>
<table><tbody/></table>
</div>
</body></html>

That's promising...  Let me take a look at your example code.

On Wed, May 16, 2018 at 1:31 AM, Syed Mudassir Ahmed <
syed.mudassir@gaianconsultants.com> wrote:

> any update on this pls?  This is blocking me.
>
> Thanks,
>
>
> On Tue, May 15, 2018 at 3:45 PM, Syed Mudassir Ahmed <syed.mudassir@
> gaianconsultants.com> wrote:
>
>> Yes, pls find the file attached here.
>>
>> Thanks,
>>
>>
>> On Tue, May 15, 2018 at 3:43 PM, Tim Allison <ta...@apache.org> wrote:
>>
>>> Any chanc you can share the file?
>>>
>>> On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
>>> syed.mudassir@gaianconsultants.com> wrote:
>>>
>>> > Hi,
>>> >   I am trying to read data from a XLSX sheet via XSSFSheetXMLHandler.
>>> The
>>> > source code is below.
>>> >
>>> >   public static void main(String str[]) throws Exception {
>>> >         String filePath
>>> >                 = "/home/gaian/Desktop/salary.xlsx";
>>> >         File file = new File(filePath);
>>> >         InputStream inputStream = new FileInputStream(file);
>>> >         OPCPackage pkg = OPCPackage.open(inputStream);
>>> >
>>> >         SheetContentsHandler sheetContentsHandler = new
>>> > SheetContentsHandler() {
>>> >             @Override
>>> >             public void startRow(int rowIndex) {
>>> >             }
>>> >
>>> >             @Override
>>> >             public void endRow(int i) {
>>> >             }
>>> >
>>> >             @Override
>>> >             public void cell(String cell, String formattedValue,
>>> > XSSFComment c) {
>>> >                 System.out.println("cell encountered with addess:<" +
>>> cell
>>> >                         + "> and value:<" + formattedValue + ">");
>>> >             }
>>> >
>>> >             @Override
>>> >             public void headerFooter(String text, boolean isHeader,
>>> String
>>> > tagName) {
>>> >                 System.out.println("headerFooter()");
>>> >             }
>>> >         };
>>> >
>>> >         ReadOnlySharedStringsTable strings = new
>>> > ReadOnlySharedStringsTable(pkg);
>>> >         XSSFReader xssfReader = new XSSFReader(pkg);
>>> >         StylesTable styles = xssfReader.getStylesTable();
>>> >         XSSFReader.SheetIterator worksheets =
>>> (XSSFReader.SheetIterator)
>>> > xssfReader.getSheetsData();
>>> >         InputStream stream = worksheets.next();
>>> >         SAXParserFactory saxFactory = SAXParserFactory.newInstance();
>>> >         XMLReader sheetParser = saxFactory.newSAXParser().getX
>>> MLReader();
>>> >
>>> >         ContentHandler handler
>>> >                 = new XSSFSheetXMLHandler(styles, strings,
>>> > sheetContentsHandler, false);
>>> >
>>> >         sheetParser.setContentHandler(handler);
>>> >         sheetParser.parse(new InputSource(stream));
>>> >     }
>>> >
>>> >   When I use the POI version 3.13, I am getting the following output:
>>> >
>>> > cell encountered with addess:<A1> and value:<Salary>
>>> > cell encountered with addess:<A2> and value:<99.965432>
>>> >
>>> >   The moment I switch to version 3.14 or higher, I am no longer getting
>>> > any output.
>>> >
>>> >   Can someone pls let me know if any more code changes needed if I
>>> switch
>>> > to 3.14 or higher?  I even checked the test cases in Apache POI 3.17
>>> > sources but was shocked not to find any there.  Any example/references
>>> that
>>> > I can go through pls?  This is blocker for one of my applications.
>>> >
>>> >
>>> > Thanks,
>>> >
>>> >
>>>
>>
>>
>

Re: Is it POI error starting 3.14 version onwards

Posted by Syed Mudassir Ahmed <sy...@gaianconsultants.com>.
any update on this pls?  This is blocking me.

Thanks,


On Tue, May 15, 2018 at 3:45 PM, Syed Mudassir Ahmed <
syed.mudassir@gaianconsultants.com> wrote:

> Yes, pls find the file attached here.
>
> Thanks,
>
>
> On Tue, May 15, 2018 at 3:43 PM, Tim Allison <ta...@apache.org> wrote:
>
>> Any chanc you can share the file?
>>
>> On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
>> syed.mudassir@gaianconsultants.com> wrote:
>>
>> > Hi,
>> >   I am trying to read data from a XLSX sheet via XSSFSheetXMLHandler.
>> The
>> > source code is below.
>> >
>> >   public static void main(String str[]) throws Exception {
>> >         String filePath
>> >                 = "/home/gaian/Desktop/salary.xlsx";
>> >         File file = new File(filePath);
>> >         InputStream inputStream = new FileInputStream(file);
>> >         OPCPackage pkg = OPCPackage.open(inputStream);
>> >
>> >         SheetContentsHandler sheetContentsHandler = new
>> > SheetContentsHandler() {
>> >             @Override
>> >             public void startRow(int rowIndex) {
>> >             }
>> >
>> >             @Override
>> >             public void endRow(int i) {
>> >             }
>> >
>> >             @Override
>> >             public void cell(String cell, String formattedValue,
>> > XSSFComment c) {
>> >                 System.out.println("cell encountered with addess:<" +
>> cell
>> >                         + "> and value:<" + formattedValue + ">");
>> >             }
>> >
>> >             @Override
>> >             public void headerFooter(String text, boolean isHeader,
>> String
>> > tagName) {
>> >                 System.out.println("headerFooter()");
>> >             }
>> >         };
>> >
>> >         ReadOnlySharedStringsTable strings = new
>> > ReadOnlySharedStringsTable(pkg);
>> >         XSSFReader xssfReader = new XSSFReader(pkg);
>> >         StylesTable styles = xssfReader.getStylesTable();
>> >         XSSFReader.SheetIterator worksheets = (XSSFReader.SheetIterator)
>> > xssfReader.getSheetsData();
>> >         InputStream stream = worksheets.next();
>> >         SAXParserFactory saxFactory = SAXParserFactory.newInstance();
>> >         XMLReader sheetParser = saxFactory.newSAXParser().getX
>> MLReader();
>> >
>> >         ContentHandler handler
>> >                 = new XSSFSheetXMLHandler(styles, strings,
>> > sheetContentsHandler, false);
>> >
>> >         sheetParser.setContentHandler(handler);
>> >         sheetParser.parse(new InputSource(stream));
>> >     }
>> >
>> >   When I use the POI version 3.13, I am getting the following output:
>> >
>> > cell encountered with addess:<A1> and value:<Salary>
>> > cell encountered with addess:<A2> and value:<99.965432>
>> >
>> >   The moment I switch to version 3.14 or higher, I am no longer getting
>> > any output.
>> >
>> >   Can someone pls let me know if any more code changes needed if I
>> switch
>> > to 3.14 or higher?  I even checked the test cases in Apache POI 3.17
>> > sources but was shocked not to find any there.  Any example/references
>> that
>> > I can go through pls?  This is blocker for one of my applications.
>> >
>> >
>> > Thanks,
>> >
>> >
>>
>
>

Re: Is it POI error starting 3.14 version onwards

Posted by Syed Mudassir Ahmed <sy...@gaianconsultants.com>.
Yes, pls find the file attached here.

Thanks,


On Tue, May 15, 2018 at 3:43 PM, Tim Allison <ta...@apache.org> wrote:

> Any chanc you can share the file?
>
> On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
> syed.mudassir@gaianconsultants.com> wrote:
>
> > Hi,
> >   I am trying to read data from a XLSX sheet via XSSFSheetXMLHandler.
> The
> > source code is below.
> >
> >   public static void main(String str[]) throws Exception {
> >         String filePath
> >                 = "/home/gaian/Desktop/salary.xlsx";
> >         File file = new File(filePath);
> >         InputStream inputStream = new FileInputStream(file);
> >         OPCPackage pkg = OPCPackage.open(inputStream);
> >
> >         SheetContentsHandler sheetContentsHandler = new
> > SheetContentsHandler() {
> >             @Override
> >             public void startRow(int rowIndex) {
> >             }
> >
> >             @Override
> >             public void endRow(int i) {
> >             }
> >
> >             @Override
> >             public void cell(String cell, String formattedValue,
> > XSSFComment c) {
> >                 System.out.println("cell encountered with addess:<" +
> cell
> >                         + "> and value:<" + formattedValue + ">");
> >             }
> >
> >             @Override
> >             public void headerFooter(String text, boolean isHeader,
> String
> > tagName) {
> >                 System.out.println("headerFooter()");
> >             }
> >         };
> >
> >         ReadOnlySharedStringsTable strings = new
> > ReadOnlySharedStringsTable(pkg);
> >         XSSFReader xssfReader = new XSSFReader(pkg);
> >         StylesTable styles = xssfReader.getStylesTable();
> >         XSSFReader.SheetIterator worksheets = (XSSFReader.SheetIterator)
> > xssfReader.getSheetsData();
> >         InputStream stream = worksheets.next();
> >         SAXParserFactory saxFactory = SAXParserFactory.newInstance();
> >         XMLReader sheetParser = saxFactory.newSAXParser().
> getXMLReader();
> >
> >         ContentHandler handler
> >                 = new XSSFSheetXMLHandler(styles, strings,
> > sheetContentsHandler, false);
> >
> >         sheetParser.setContentHandler(handler);
> >         sheetParser.parse(new InputSource(stream));
> >     }
> >
> >   When I use the POI version 3.13, I am getting the following output:
> >
> > cell encountered with addess:<A1> and value:<Salary>
> > cell encountered with addess:<A2> and value:<99.965432>
> >
> >   The moment I switch to version 3.14 or higher, I am no longer getting
> > any output.
> >
> >   Can someone pls let me know if any more code changes needed if I switch
> > to 3.14 or higher?  I even checked the test cases in Apache POI 3.17
> > sources but was shocked not to find any there.  Any example/references
> that
> > I can go through pls?  This is blocker for one of my applications.
> >
> >
> > Thanks,
> >
> >
>

Re: Is it POI error starting 3.14 version onwards

Posted by Tim Allison <ta...@apache.org>.
Any chanc you can share the file?

On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
syed.mudassir@gaianconsultants.com> wrote:

> Hi,
>   I am trying to read data from a XLSX sheet via XSSFSheetXMLHandler.  The
> source code is below.
>
>   public static void main(String str[]) throws Exception {
>         String filePath
>                 = "/home/gaian/Desktop/salary.xlsx";
>         File file = new File(filePath);
>         InputStream inputStream = new FileInputStream(file);
>         OPCPackage pkg = OPCPackage.open(inputStream);
>
>         SheetContentsHandler sheetContentsHandler = new
> SheetContentsHandler() {
>             @Override
>             public void startRow(int rowIndex) {
>             }
>
>             @Override
>             public void endRow(int i) {
>             }
>
>             @Override
>             public void cell(String cell, String formattedValue,
> XSSFComment c) {
>                 System.out.println("cell encountered with addess:<" + cell
>                         + "> and value:<" + formattedValue + ">");
>             }
>
>             @Override
>             public void headerFooter(String text, boolean isHeader, String
> tagName) {
>                 System.out.println("headerFooter()");
>             }
>         };
>
>         ReadOnlySharedStringsTable strings = new
> ReadOnlySharedStringsTable(pkg);
>         XSSFReader xssfReader = new XSSFReader(pkg);
>         StylesTable styles = xssfReader.getStylesTable();
>         XSSFReader.SheetIterator worksheets = (XSSFReader.SheetIterator)
> xssfReader.getSheetsData();
>         InputStream stream = worksheets.next();
>         SAXParserFactory saxFactory = SAXParserFactory.newInstance();
>         XMLReader sheetParser = saxFactory.newSAXParser().getXMLReader();
>
>         ContentHandler handler
>                 = new XSSFSheetXMLHandler(styles, strings,
> sheetContentsHandler, false);
>
>         sheetParser.setContentHandler(handler);
>         sheetParser.parse(new InputSource(stream));
>     }
>
>   When I use the POI version 3.13, I am getting the following output:
>
> cell encountered with addess:<A1> and value:<Salary>
> cell encountered with addess:<A2> and value:<99.965432>
>
>   The moment I switch to version 3.14 or higher, I am no longer getting
> any output.
>
>   Can someone pls let me know if any more code changes needed if I switch
> to 3.14 or higher?  I even checked the test cases in Apache POI 3.17
> sources but was shocked not to find any there.  Any example/references that
> I can go through pls?  This is blocker for one of my applications.
>
>
> Thanks,
>
>