Как заменить значения столбца jtable по умолчанию при экспорте строк в Excel - Java - PullRequest
0 голосов
/ 11 июля 2019
            for (int i = 0; i < model.getRowCount(); i++) {
                XSSFRow newRow = sheet1.createRow(i);
                for (int j = 0; j < model.getColumnCount(); j++) {
                    XSSFCell excelCell = newRow.createCell((short) j);
                    if (j == model.getColumnCount() - 1) {
                        JLabel excelJL = (JLabel) model.getValueAt(i, j);
                        ImageIcon excelImageIcon = (ImageIcon) excelJL.getIcon();
                        String imagePath = excelImageIcon.getDescription();
                        //[i][j] = imagePath;
                    }

                        excelCell.setCellValue(model.getValueAt(i, j).toString());

                }
            }

Экспортирую данные из jtable в excel, как мне установить imagePath Строка, которая будет установлена ​​в столбце excel вместо последнего столбца jtable.В этом случае последний столбец выводит модель jlabel вместо вывода пути к изображению.У меня есть способ извлечь путь к изображению, и я хочу заменить этот столбец новыми данными, которые являются строкой пути к изображению и хранятся в переменной imagePath

1 Ответ

0 голосов
/ 11 июля 2019
            //Loop through the jtable columns and rows to get its values
            for (int i = 0; i < model.getRowCount(); i++) {
                XSSFRow excelRow = excelSheet.createRow(i);
                for (int j = 0; j < model.getColumnCount(); j++) {
                    XSSFCell excelCell = excelRow.createCell(j);

                    //Change the image column to output image path
                    //Fourth column contains images
                    if (j == model.getColumnCount() - 1) {
                        JLabel excelJL = (JLabel) model.getValueAt(i, j);
                        ImageIcon excelImageIcon = (ImageIcon) excelJL.getIcon();
                        //Image Name Is Stored In ImageIcons Description First set it And Then Retrieve it.
                        excelImagePath = excelImageIcon.getDescription();
                    }

                    excelCell.setCellValue(model.getValueAt(i, j).toString());
                    if (excelCell.getColumnIndex() == model.getColumnCount() - 1) {
                        excelCell.setCellValue(excelImagePath);
                    }
                }

            }

Я изменяю последний столбец. Таким образом, этот код изменяет все значения столбца на значение переданного аргумента. В моем случае я показываю пути изображения.

...