https://issues.apache.org/bugzilla/show_bug.cgi?id=49254

           Summary: CellUtil.setFont fails
           Product: POI
           Version: 3.6
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSSF
        AssignedTo: [email protected]
        ReportedBy: [email protected]


Description:
This bug applies to both XSSF and HSSF:
In a workbook, I create a bold font.
Setting this font to a cell using method CellUtil.setFont fails.
Instead, the font at index 0 is used.

Test Code:

        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet();

        Row row = sheet.createRow(0);
        Cell cell = row.createCell(0);
        cell.setCellValue("TestCell");

        Font font = workbook.createFont();
        font.setBoldweight(Font.BOLDWEIGHT_BOLD);
        font.setFontHeightInPoints((short) 20);

        // This fails
        CellUtil.setFont(cell, workbook, font);
        // Workaround
//        short fontIndex = font.getIndex();
//        CellUtil.setCellStyleProperty(cell, workbook, CellUtil.FONT,
Short.valueOf(fontIndex));

        workbook.write(new FileOutputStream(new File("test-font.xlsx")));

Evaluation:
CellUtil.setFont calls method setCellStyleProperty and passes-in a Font object
as parameter "propertyValue". It fails a find a style that it can reuse and
creates a new one. Then it calls setFormatProperties which in turn looks up the
font using method getShort. Tha map passed-in contains almost only Short object
as values, but a Font object for property "font". Thus it returns the default
value 0. 

Workaround:
Avoid method CellUtil.setFont and use the workaround (as commented-out in the 
above test code).

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to