poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject [Bug 59458] New: Exporting xlsx using apache poi 3.13 on weblogic : File format or extension not valid
Date Wed, 11 May 2016 12:07:47 GMT
https://bz.apache.org/bugzilla/show_bug.cgi?id=59458

            Bug ID: 59458
           Summary: Exporting xlsx using apache poi 3.13 on weblogic :
                    File format or extension not valid
           Product: POI
           Version: 3.13-FINAL
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: blocker
          Priority: P2
         Component: XSSF
          Assignee: dev@poi.apache.org
          Reporter: kishan089.ce@gmail.com

Earlier I was exporting xls with Apache POI 2.5.1 to export `.xls` file using
`HSSFWorkbook`.
With updated Apache POI to 3.13 I am exporting `.xlsx` file using
`SXSSFWorkbook` but its exporting corrupted file. 

MS Excel failed to open file with **File format or extension not valid** error.

Note that this issue I am facing only on `WebLogic` server, it works fine with
`JBoss`.

Anybody can help what I am doing wrong here or it is POI bug?

Code:

        List<JRField> fields = ds.getFields();
        SXSSFWorkbook wb = new SXSSFWorkbook();
        SXSSFSheet sheet = wb.createSheet("Sheet1");

        try {
            CellStyle cellStyle         = wb.createCellStyle();
            CellStyle cellStyleColName  = wb.createCellStyle();
            CellStyle cellStyleTitle    = wb.createCellStyle();

            Font boldFont = wb.createFont();
            boldFont.setFontHeightInPoints((short)16);
            boldFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

            // Cell Style for body
           
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)"));
            cellStyle.setWrapText(true);

            // Cell Style for Column Names
           
cellStyleColName.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)"));
            cellStyleColName.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            cellStyleColName.setBorderTop(HSSFCellStyle.BORDER_MEDIUM); //
single line border
            cellStyleColName.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM); //
single line border

            // Cell Style for Title
           
cellStyleTitle.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)"));
            cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            cellStyleTitle.setFont(boldFont);

            // Creating Title Row
            Row row1 = sheet.createRow((short) 0);

            // Creating the Title line
            Cell cell1 = row1.createCell((short) 0);
            cell1.setCellValue("Demo Title");
            cell1.setCellStyle(cellStyleTitle);

            // Title Region
            CellRangeAddress regionTitle = new CellRangeAddress(  (short) 0,   
   // From Row
                    (short) 0,                                    // From Col
                    (short) 0,                                    // To Row
                    (short) (this.displayCols.size()-1)           // To Col

            );
            sheet.addMergedRegion(regionTitle);

            // Column Name Row
            int j =0;
            Row row2 = sheet.createRow((short) 1);
            for (ReportColumn col : this.displayCols)
            {
                Cell cell2 = row2.createCell((short) j++);
                cell2.setCellValue(col.getDisplayName());
                cell2.setCellStyle(cellStyleColName);
            }

            int i =2;
            while (ds.next()) {
                Row rows = sheet.createRow((short) 0 + i);
                int k = 0;
                for (JRField field : fields) {
                    String fieldAsString = (ds.getFieldValue(field) != null ?
ds.getFieldValue(field).toString():null);
                    Cell cell = rows.createCell((short) k++);
                    cell.setCellStyle(cellStyle);
                    cell.setCellValue(fieldAsString);
                }
                i++;
                if (i > RECORD_LIMIT_FROM_POI){
                    log.info("Row limit from poi reached #1048576 and exported
data is truncated.");
                    break;
                }
            }

            wb.write(os);
        }
        catch (Exception e) {
            log.error("error in createXlsFile method", e);
        }


**Failed attempts:**
 1. Updated mime type in response header from `application/vnd.ms-excel`
    to `vnd.openxmlformats-officedocument.spreadsheetml.sheet`
 2. Added `xlsx=vnd.openxmlformats-officedocument.spreadsheetml.sheet` in
custom mime mapping file for WebLogic

Notes:
WebLogic running on Linux SuSe
WebLogic version 10.3.5.0

-- 
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


Mime
View raw message