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.mudas...@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 <talli...@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 <talli...@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.mudas...@gaianconsultants.com> wrote:
>> >>
>> >>> Yes, pls find the file attached here.
>> >>>
>> >>> Thanks,
>> >>>
>> >>>
>> >>> On Tue, May 15, 2018 at 3:43 PM, Tim Allison <talli...@apache.org>
>> >>> wrote:
>> >>>
>> >>>> Any chanc you can share the file?
>> >>>>
>> >>>> On Tue, May 15, 2018 at 3:19 AM Syed Mudassir Ahmed <
>> >>>> syed.mudas...@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,
>> >>>> >
>> >>>> >
>> >>>>
>> >>>
>> >>>
>> >>
>> >
>>
>
>

Reply via email to