Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись в Excel из JTable / 14 сообщений из 14, страница 1 из 1
21.10.2017, 15:08
    #39539881
progjar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
Есть таблица JTable, сделанная не через TableModel, а добавленная из конструктора в NetBians. Как с помощью Apach POI сделать правильное сохранение столбцов и строк из JTable в Excel ?
...
Рейтинг: 0 / 0
21.10.2017, 15:15
    #39539884
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
progjar,
оин же не зависят друг от друга.
Что в Excell, что в файл, что на экран - бегаем по строкам и сохраняем.
...
Рейтинг: 0 / 0
21.10.2017, 15:25
    #39539885
progjar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
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
21.10.2017, 15:29
    #39539887
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
progjar,
Код отвечающий ТЗ считается правильным)).
Доводи до ума.
...
Рейтинг: 0 / 0
21.10.2017, 17:47
    #39539913
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
progjar,

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

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

 - OFFLINE : разбить на этапы (действия):
    - запускаем приложение, импортируем Excel-файл
    - работаем с подргуженными данными
    - экспорт содержимого таблицы в Excel
...
Рейтинг: 0 / 0
21.10.2017, 17:58
    #39539915
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
...
Рейтинг: 0 / 0
21.10.2017, 18:23
    #39539918
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
Usman ONLINE
Да. Уже будет полноценная буква М из MV***.
Если ему это надо.
...
Рейтинг: 0 / 0
21.10.2017, 18:54
    #39539927
progjar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
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
21.10.2017, 20:50
    #39539958
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
progjar,
Пол дня прошло и ты его не доводил до ума?
И советы выше не изучил?
Ты работай, и по пути рассказывай про ошибки и трудности.
...
Рейтинг: 0 / 0
24.10.2017, 10:32
    #39540885
progjar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в 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.
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
24.10.2017, 11:04
    #39540915
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
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
24.10.2017, 12:06
    #39540954
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
progjarправда не оформлен нормально
Форматирование кода в любой современной IDE производится в одну-две комбинации кнопок. Не ленитесь.
...
Рейтинг: 0 / 0
01.11.2017, 18:05
    #39546306
progjar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
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
01.11.2017, 18:13
    #39546317
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в Excel из JTable
progjarа в JTable не получается
И что тут написано для того чтобы получилось? md.addRow() я не наблюдаю.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись в Excel из JTable / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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