From 99e92d3bf8e226df6ca8414d3919c44b2746ce84 Mon Sep 17 00:00:00 2001 From: esoe Date: Fri, 10 Jun 2022 17:26:46 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=D1=82=D1=8F=D0=B3=D0=B8=D0=B2=D0=B0=D1=82=D1=8C=20=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B8=D0=B7=20=D1=8D=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=BB=D1=8F,=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BE=D1=82?= =?UTF-8?q?=D1=87=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ru/egspt/ReportTableModel.java | 61 ++++++++++++++++---- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/src/main/java/ru/egspt/ReportTableModel.java b/src/main/java/ru/egspt/ReportTableModel.java index 4a490e0..06c0c9b 100644 --- a/src/main/java/ru/egspt/ReportTableModel.java +++ b/src/main/java/ru/egspt/ReportTableModel.java @@ -1,11 +1,9 @@ package ru.egspt; import java.io.File; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.time.LocalTime; import java.util.ArrayList; @@ -182,7 +180,7 @@ public class ReportTableModel extends AbstractTableModel{ public Object[][] getData() { return data; } - public void toExcell(){ + public void toExcell(File file){ System.out.println("Формирование report.xlsx ..."); // создание самого excel файла в памяти XSSFWorkbook book = new XSSFWorkbook(); @@ -219,27 +217,27 @@ public class ReportTableModel extends AbstractTableModel{ row++; } //пишем книгу в файл - String location = System.getProperty("user.dir") + "\\report.xlsx"; - Path path = Paths.get(location); - if (Files.exists(path)) { - try (FileOutputStream out = new FileOutputStream(location)) { + //String location = System.getProperty("user.dir") + "\\report.xlsx"; + //Path path = Paths.get(location); + if (file.exists()) { + try (FileOutputStream out = new FileOutputStream(file)) { book.write(out); book.close(); out.close(); System.out.println("Excel файл успешно перезаписан!"); - System.out.println(location); + System.out.println(file); } catch (IOException e){ e.printStackTrace(); } } else { - try (FileOutputStream out = new FileOutputStream(new File(location))) { + try (FileOutputStream out = new FileOutputStream(file)) { book.write(out); book.close(); out.close(); System.out.println("Excel файл успешно создан!"); - System.out.println(location); + System.out.println(file); } catch (IOException e){ e.printStackTrace(); @@ -269,6 +267,47 @@ public class ReportTableModel extends AbstractTableModel{ i++; } System.out.println(getHeader().toString()); + } + /* + * обновление данных отчета по данным заявки, доабвляем в отчет столбцы: + * - organization/наименование организации + * - object/объект строительства + * - name/Фамилия Имя Отчество + * - position/должность + * - result/имеются или нет результаты + * + * данные из файла подтягиваются по полю Login, + * столбцы должны быть размещены в строгой последовательности: + * 1. login + * 2. ... + * 3. + * + * Лист с которого берем данные должен быть первым (желательно единственным) + */ + public void updateReport(File file) throws IOException{ + // создание самого excel файла в памяти + XSSFWorkbook book = new XSSFWorkbook(new FileInputStream(file)); + XSSFSheet sheet = book.getSheetAt(0); + int height = sheet.getLastRowNum();//количество строк в таблице + Row row = sheet.getRow(0); + int wide = row.getLastCellNum();//количество столбцов в таблице (первые 5 столбцов должны жестко соответствовать шаблону) + //перебираем строки файла + int i = 0; + while (i < height){ + if ((String)getData()[i][1] == row.getCell(0).getStringCellValue()){ + //переписываем данные строки в модель + + } + + + i++; + } + + + + + + book.close(); } }