Java запись JTable в файл Excel

По роду деятельности часто приходится выполнять просьбы пользователей о сбросе данных в формат xls. Ранее сохранял данные в CSV формате и открывал их в Excel. Постоянная неудовлетворенность привела к варианту (надеюсь не окончательному) с использованием библиотеки JExcelAPI

protected void saveToXLS(JTable table) {
        // Определяем куда
        String path = "output.xls";// Если полный путь не определен, то файл запишется в текущий каталог с именем output.xls
        JFileChooser fileopen = new JFileChooser();
        fileopen.removeChoosableFileFilter(fileopen.getFileFilter());
        FileFilter filter = new FileNameExtensionFilter("Excel files", "xls");
        fileopen.addChoosableFileFilter(filter);
 
        int ret = fileopen.showDialog(null, "Сохранить в файл");
        if (ret == JFileChooser.APPROVE_OPTION) {
            path = fileopen.getSelectedFile().getAbsolutePath();
        }
        if (!path.substring(path.length() - 4, path.length()).equalsIgnoreCase(
                ".xls")) {
            path += ".xls";
        }
        System.out.println(path);
        // создаем новый XLS документ
        WritableWorkbook workbook;
        try {
            workbook = Workbook.createWorkbook(new File(path));
            WritableSheet sheet = workbook.createSheet("Sheet1", 0);
 
            WritableFont wf_color = new WritableFont(WritableFont.ARIAL, 10,
                    WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
                    Colour.AQUA);
            WritableCellFormat wff_color = new WritableCellFormat(wf_color);
            wff_color.setBackground(Colour.DARK_BLUE);
            // Строка заголовка
            int colCount=table.getColumnCount();
// Здесь пропускается первая колонка с номерами строк, 
// поскольку у Excel свой нумератор и наша колонка будет как зайцу пятая нога
            for (int i = 1; i 

Tags: