apache poi appliquer un style à des classeurs différents

J'essaye d'appliquer un style de cellule à defferent woekbooks. Il fonctionne bien, quand je l'applique au premier classeur, mais quand je suis en train de le faire avec la deuxième et la prochaine classeurs - aucun style n'est appliqué et l'exception suivante est levée.

Exception in thread "Thread-3" java.lang.IllegalArgumentException: This Style does not belong to the supplied Workbook Stlyes Source. Are you trying to assign a style from one workbook to the cell of a differnt workbook?
    at org.apache.poi.xssf.usermodel.XSSFCellStyle.verifyBelongsToStylesSource(XSSFCellStyle.java:118)
    at org.apache.poi.xssf.usermodel.XSSFCell.setCellStyle(XSSFCell.java:500)
    at CoreLayer.ExportManager.ExcelExproter.applyStyle(ExcelExproter.java:224)
    at CoreLayer.ExportManager.ExcelExproter.groupSchedule(ExcelExproter.java:47)
    at UILayer.ExportDialog$ExportWorker.run(ExportDialog.java:111)
    at java.lang.Thread.run(Thread.java:722)

Le code suivant est utilisé:

public void professorSchedule(Professor professor) {
        Workbook wb = new XSSFWorkbook();
        Sheet sheet = wb.createSheet(TextConstants.SCHEDULE);
        String safeName = WorkbookUtil.createSafeSheetName(professor.toString() + ".xlsx");

        LinkedHashMap<ScheduleSlot, Lesson> professorSchedule = data.getSchedule().getProfessorSchedule(professor);
        fillProfessorSchedule(sheet, professorSchedule);

        applyStyle(wb, sheet);
        try {
            FileOutputStream fileOutputStream = new FileOutputStream(settings.getSchedulesPath() + safeName);
            wb.write(fileOutputStream);
            fileOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void applyStyle(Workbook wb, Sheet sheet) {
        CellStyle style = wb.createCellStyle();
        style.setWrapText(true);

        int columnNumber = 0;
        sheet.autoSizeColumn(columnNumber);
        for (Row row : rows) {
            for (Cell cell : row) {
                cell.setCellStyle(style);
                sheet.setColumnWidth(columnNumber++, 5000);
            }
        }
    }  

Merci à tous d'avance!

OriginalL'auteur mr.nothing | 2012-05-27