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