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 @@
package ru.egspt; package ru.egspt;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; 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.time.LocalTime;
import java.util.ArrayList; import java.util.ArrayList;
@ -182,7 +180,7 @@ public class ReportTableModel extends AbstractTableModel{
public Object[][] getData() { public Object[][] getData() {
return data; return data;
} }
public void toExcell(){ public void toExcell(File file){
System.out.println("Формирование report.xlsx ..."); System.out.println("Формирование report.xlsx ...");
// создание самого excel файла в памяти // создание самого excel файла в памяти
XSSFWorkbook book = new XSSFWorkbook(); XSSFWorkbook book = new XSSFWorkbook();
@ -219,27 +217,27 @@ public class ReportTableModel extends AbstractTableModel{
row++; row++;
} }
//пишем книгу в файл //пишем книгу в файл
String location = System.getProperty("user.dir") + "\\report.xlsx"; //String location = System.getProperty("user.dir") + "\\report.xlsx";
Path path = Paths.get(location); //Path path = Paths.get(location);
if (Files.exists(path)) { if (file.exists()) {
try (FileOutputStream out = new FileOutputStream(location)) { try (FileOutputStream out = new FileOutputStream(file)) {
book.write(out); book.write(out);
book.close(); book.close();
out.close(); out.close();
System.out.println("Excel файл успешно перезаписан!"); System.out.println("Excel файл успешно перезаписан!");
System.out.println(location); System.out.println(file);
} }
catch (IOException e){ catch (IOException e){
e.printStackTrace(); e.printStackTrace();
} }
} }
else { else {
try (FileOutputStream out = new FileOutputStream(new File(location))) { try (FileOutputStream out = new FileOutputStream(file)) {
book.write(out); book.write(out);
book.close(); book.close();
out.close(); out.close();
System.out.println("Excel файл успешно создан!"); System.out.println("Excel файл успешно создан!");
System.out.println(location); System.out.println(file);
} }
catch (IOException e){ catch (IOException e){
e.printStackTrace(); e.printStackTrace();
@ -269,6 +267,47 @@ public class ReportTableModel extends AbstractTableModel{
i++; i++;
} }
System.out.println(getHeader().toString()); 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