Создание новых листов Excel (Java) (Apache POI)

392
16 мая 2017, 02:34

При записи из JTable в Excel постоянно создается новый файл с xls, вместо создания новых листов. К примеру :

Есть 5 листов в excel таблице.

Программа строит JTable на основе этой таблицы.

И нужно чтобы при изменении в JTable все данные сохранялись обратно в Excel-таблицу.

В моём коде происходит следующее : каждый лист открывается в новом окне. но по нажатию клавиши сохранить в xls файле стираются все листы,создается текущий лист и сохраняются данные. А нужно чтобы он перезаписывал данные в одном из существующих листов.

Весь код работает на Apache POI, но данный участок кода работает с JXL

WritableWorkbook workbook1 = Workbook.createWorkbook(new File("C:\\result.xls"));
                WritableSheet sheet1 = workbook1.createSheet(list, listnum);
                TableModel model = table.getModel();
                for (int i = 0; i < model.getColumnCount(); i++) {
                    Label column = new Label(i, 0, model.getColumnName(i));
                    sheet1.addCell(column);
                }
                int j = 0;
                for (int i = 0; i < model.getRowCount(); i++) {
                    for (j = 0; j < model.getColumnCount(); j++) {
                        Label row = new Label(j, i + 1,
                                model.getValueAt(i, j).toString());
                        sheet1.addCell(row);
                    }
                }
                workbook1.write();
                workbook1.close();

как исправить код,чтобы конвертировать его из JXL для Apache POI?

В первой строке нужно изменить не на создание новой книги,а чтение уже существующей.

Answer 1

У тебя в коде должна быть одна книга:

Workbook wb = WorkbookFactory.create(new File("/путь/к/файлу"));

на которой создаются новые листы:

Sheet sheet = wb.createSheet();
READ ALSO
Изменение интерфейса из второго класса

Изменение интерфейса из второго класса

Есть класс MainActivity из которого запускаю другой класс, через startintent, допустим, TwoActivityНо TwoActivity не видит интерфейс, то есть findViewById не видит ID элементов...

263
Ручной маппинг в веб интерфейсе (java)

Ручной маппинг в веб интерфейсе (java)

Подскажите лучшие инструменты для написание веб интерфейса, задача - маппинг 2х java классов

242
Большое кол-во потоков

Большое кол-во потоков

У меня в программе создается огромное кол-во потоков (>10000)Использую ExecutorService

266