|
|
@ -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(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|