Browse Source

начал подтягивать данные из экселя, для дополнения отчета

master
esoe 2 years ago
parent
commit
99e92d3bf8
  1. 61
      src/main/java/ru/egspt/ReportTableModel.java

61
src/main/java/ru/egspt/ReportTableModel.java

@ -1,11 +1,9 @@ @@ -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{ @@ -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{ @@ -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{ @@ -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();
}
}

Loading…
Cancel
Save