powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись в Excel из JTable
14 сообщений из 14, страница 1 из 1
Запись в Excel из JTable
    #39539881
progjar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица JTable, сделанная не через TableModel, а добавленная из конструктора в NetBians. Как с помощью Apach POI сделать правильное сохранение столбцов и строк из JTable в Excel ?
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39539884
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
progjar,
оин же не зависят друг от друга.
Что в Excell, что в файл, что на экран - бегаем по строкам и сохраняем.
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39539885
progjar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123progjar,
бегаем по строкам и сохраняем.

То есть даже этот код доведенный до ума, спокойно подойдет для сохранения?

Код: java
1.
2.
3.
4.
5.
6.
public static void main(String[] args) throws IOExeption {
Workbook bk = new HSSFWorkbook();
Sheet sh= bk.createSheet("List");
FileOutputStream fl = new FileOutputStream("Excel.xls");
bk.write(fl);
fl.close();
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39539887
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
progjar,
Код отвечающий ТЗ считается правильным)).
Доводи до ума.
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39539913
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
progjar,

Два варианта:

 - ONLINE : можно попытаться настроить JTable/TableModel так,
   чтобы записывал и считывал в/из Excel
   (все изменения моментально будут записываться в Excel-файл)

 - OFFLINE : разбить на этапы (действия):
    - запускаем приложение, импортируем Excel-файл
    - работаем с подргуженными данными
    - экспорт содержимого таблицы в Excel
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39539915
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39539918
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman ONLINE
Да. Уже будет полноценная буква М из MV***.
Если ему это надо.
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39539927
progjar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123progjar,
бегаем по строкам и сохраняем.

То есть даже этот код доведенный до ума, спокойно подойдет для сохранения?

Код: java
1.
2.
3.
4.
5.
6.
public static void main(String[] args) throws IOExeption {
Workbook bk = new HSSFWorkbook();
Sheet sh= bk.createSheet("List");
FileOutputStream fl = new FileOutputStream("Excel.xls");
bk.write(fl);
fl.close();
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39539958
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
progjar,
Пол дня прошло и ты его не доводил до ума?
И советы выше не изучил?
Ты работай, и по пути рассказывай про ошибки и трудности.
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39540885
progjar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал код, работает, правда не оформлен нормально


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
HSSFWorkbook bk = new  HSSFWorkbook ();
        HSSFSheet sh = bk.createSheet ("Login");
        TableModel model = jTable1.getModel();
        TableColumnModel tcm = jTable1.getColumnModel();
        HSSFRow rw = sh.createRow ((short) 0);
         for(int j = 0; j < tcm.getColumnCount(); j++) {     
        HSSFCell cl = rw.createCell ((short) j);
        cl.setCellValue(tcm.getColumn(j).getHeaderValue().toString());
                }
          for (int i = 0; i < model.getRowCount(); i++) {
                    HSSFRow fRow = sh.createRow((short) i+1);
                    for (int j = 0; j < model.getColumnCount(); j++) {
                        HSSFCell cell = fRow.createCell((short) j);
                        cell.setCellValue(model.getValueAt(i, j).toString());
                    }
           FileOutputStream fl = null;
            try {
                fl = new FileOutputStream("Login.xls");
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
            }
    try (BufferedOutputStream bos = new BufferedOutputStream(fl)) {
              try {
              bk.write(bos);
               } catch (IOException ex) {
               Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
                }
    }       catch (IOException ex) {
                Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
            }
            try {
                fl.close();
            } catch (IOException ex) {
                Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
         }
}             
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39540915
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
progjar,

Code-snippet для считывания данных из Excel-файла:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
// получаем расширение файла
String extension = org.apache.commons.io.FilenameUtils.getExtension(fileName); // из apache-commons-io

// XLS или XLSX ?
boolean isXml = extension.equalsIgnoreCase("xlsx");

try (java.io.FileInputStream stream = new java.io.FileInputStream("<путь к файлу>")) {
    try (Workbook wb = isXml ? new XSSFWorkbook(stream) : new HSSFWorkbook(stream)) {
      Iterator<Row> rows = wb.getSheetAt(0).rowIterator(); // номер листа, по умолчанию нулевой
    
      while (rows.hasNext()) {
        Row row = rows.next();
        // пробегаем построчно и получаем данные
      }
    }
} catch (...) {
    // обработка ошибки
}
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39540954
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
progjarправда не оформлен нормально
Форматирование кода в любой современной IDE производится в одну-две комбинации кнопок. Не ленитесь.
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39546306
progjar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman,

Написал открытие Excel по своему, только таблица выводится в консоль, а в JTable не получается

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
InputStream in = null;
        try {
            in = new FileInputStream("Путь к файлу");
            HSSFWorkbook wb = new HSSFWorkbook(in);
            HSSFSheet sheet = wb.getSheetAt(0);
             DefaultTableModel md = (DefaultTableModel)jTable1.getModel();
             jTable1.setModel(md);
            Iterator<Row> it = sheet.iterator();
            while (it.hasNext()) {
                Row row = it.next();
                Iterator<Cell> cells = row.iterator();
                while (cells.hasNext()) {
                    Cell cell = cells.next();
                    switch (cell.getCellType()) {
                        case Cell.CELL_TYPE_NUMERIC:
                            System.out.printf ("% 0f", cell.getNumericCellValue());
                            break;
                        case Cell.CELL_TYPE_STRING:
                            System.out.print (cell.getStringCellValue() +"\t\t");
                            break;
                    } 
                }
                System.out.println(md);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Frame2.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Frame2.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                in.close();
            } catch (IOException ex) {
                Logger.getLogger(Frame2.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
...
Рейтинг: 0 / 0
Запись в Excel из JTable
    #39546317
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
progjarа в JTable не получается
И что тут написано для того чтобы получилось? md.addRow() я не наблюдаю.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись в Excel из JTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]