@ -1,9 +1,19 @@
@@ -1,9 +1,19 @@
package ru.egspt ;
import java.io.File ;
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 ;
import javax.swing.table.AbstractTableModel ;
import org.apache.poi.ss.usermodel.Cell ;
import org.apache.poi.ss.usermodel.Row ;
import org.apache.poi.xssf.usermodel.XSSFSheet ;
import org.apache.poi.xssf.usermodel.XSSFWorkbook ;
public class ReportTableModel extends AbstractTableModel {
private Object [ ] header ;
@ -172,6 +182,75 @@ public class ReportTableModel extends AbstractTableModel{
@@ -172,6 +182,75 @@ public class ReportTableModel extends AbstractTableModel{
public Object [ ] [ ] getData ( ) {
return data ;
}
public void toExcell ( ) {
System . out . println ( "Формирование report.xlsx ..." ) ;
// создание самого excel файла в памяти
XSSFWorkbook book = new XSSFWorkbook ( ) ;
// создание листа
XSSFSheet sheet = book . createSheet ( "Report" ) ;
//пишем названия тестов в заголовки xlsx
int row = 0 ; //строка
int col = 0 ; //столбец
Row r = sheet . createRow ( row ) ;
while ( col < getHeader ( ) . length ) {
r . createCell ( col ) . setCellValue ( getHeader ( ) [ col ] . toString ( ) ) ;
col + + ;
}
System . out . println ( "Заголовки в report.xlsx сформированы." ) ;
//построчно пишем данные
System . out . println ( "Построчно пишем данные .... " ) ;
row + + ;
int userCurr = 0 ;
while ( userCurr < getData ( ) . length ) {
col = 0 ;
r = sheet . createRow ( row ) ;
while ( col < getHeader ( ) . length ) {
Cell c = r . createCell ( col ) ;
if ( getData ( ) [ userCurr ] [ col ] = = null ) {
c . setCellValue ( "" ) ;
}
else {
c . setCellValue ( getData ( ) [ userCurr ] [ col ] . toString ( ) ) ;
}
//
col + + ;
}
userCurr + + ;
row + + ;
}
//пишем книгу в файл
String location = System . getProperty ( "user.dir" ) + "\\report.xlsx" ;
Path path = Paths . get ( location ) ;
if ( Files . exists ( path ) ) {
try ( FileOutputStream out = new FileOutputStream ( location ) ) {
book . write ( out ) ;
book . close ( ) ;
out . close ( ) ;
System . out . println ( "Excel файл успешно перезаписан!" ) ;
System . out . println ( location ) ;
}
catch ( IOException e ) {
e . printStackTrace ( ) ;
}
}
else {
try ( FileOutputStream out = new FileOutputStream ( new File ( location ) ) ) {
book . write ( out ) ;
book . close ( ) ;
out . close ( ) ;
System . out . println ( "Excel файл успешно создан!" ) ;
System . out . println ( location ) ;
}
catch ( IOException e ) {
e . printStackTrace ( ) ;
}
}
}
/ *
* выводим данные модели в консоль
* /
public void toConsole ( ) {
//заголовки
int i = 0 ;