diff --git a/buisnesslogic/pom.xml b/buisnesslogic/pom.xml index 5bd658b..77e0dd0 100644 --- a/buisnesslogic/pom.xml +++ b/buisnesslogic/pom.xml @@ -36,19 +36,35 @@ 2.3.0 - mysql - mysql-connector-java - 8.0.18 - - - org.springframework.boot - spring-boot-starter-data-jpa - - + mysql + mysql-connector-java + 8.0.18 + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + org.apache.poi + poi-ooxml + 3.17 + + + + + org.apache.poi + poi + 3.17 + + - + + diff --git a/buisnesslogic/src/main/java/com/plannaplan/configutils/FileReader.java b/buisnesslogic/src/main/java/com/plannaplan/configutils/FileReader.java new file mode 100644 index 0000000..e6ec16c --- /dev/null +++ b/buisnesslogic/src/main/java/com/plannaplan/configutils/FileReader.java @@ -0,0 +1,55 @@ +package com.plannaplan.configutils; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Hashtable; +import java.util.Iterator; + +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import com.plannaplan.models.FileData; + +public class FileReader { + + private InputStream fileInputStream; + + public FileReader(InputStream fileInputStream) { + this.fileInputStream = fileInputStream; + } + + public FileData read() { + + FileData result = null; + + try { + InputStream fis = this.fileInputStream; + XSSFWorkbook workbook = new XSSFWorkbook(fis); + XSSFSheet sheet = workbook.getSheetAt(0); + + Iterator rowIt = sheet.iterator(); + + Row row = rowIt.next(); + Iterator cellIt = row.cellIterator(); + + Hashtable keys = new Hashtable<>(); + int index = 0; + while (cellIt.hasNext()) { + Cell c = cellIt.next(); + keys.put(c.toString(), index); + } + + rowIt.remove(); + result = new FileData(keys, rowIt); + workbook.close(); + fis.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + + return result; + } + +} \ No newline at end of file diff --git a/buisnesslogic/src/main/java/com/plannaplan/configutils/FileToDatabaseMigrator.java b/buisnesslogic/src/main/java/com/plannaplan/configutils/FileToDatabaseMigrator.java index a19a5eb..9685468 100644 --- a/buisnesslogic/src/main/java/com/plannaplan/configutils/FileToDatabaseMigrator.java +++ b/buisnesslogic/src/main/java/com/plannaplan/configutils/FileToDatabaseMigrator.java @@ -1,12 +1,12 @@ package com.plannaplan.configutils; -import java.io.File; +import com.plannaplan.models.FileData; public class FileToDatabaseMigrator { public FileToDatabaseMigrator() { } - public void migrate(File file) { + public void migrate(FileData data) { } } \ No newline at end of file diff --git a/buisnesslogic/src/main/java/com/plannaplan/models/FileData.java b/buisnesslogic/src/main/java/com/plannaplan/models/FileData.java new file mode 100644 index 0000000..6505788 --- /dev/null +++ b/buisnesslogic/src/main/java/com/plannaplan/models/FileData.java @@ -0,0 +1,34 @@ +package com.plannaplan.models; + +import java.util.Dictionary; +import java.util.Iterator; + +import org.apache.poi.ss.usermodel.Row; + +public class FileData { + + private Dictionary keys; + private Iterator rows; + + public FileData(Dictionary keys, Iterator rows) { + this.setKeys(keys); + this.setRows(rows); + } + + public Iterator getRows() { + return rows; + } + + public void setRows(Iterator rows) { + this.rows = rows; + } + + public Dictionary getKeys() { + return keys; + } + + public void setKeys(Dictionary keys) { + this.keys = keys; + } + +} \ No newline at end of file diff --git a/buisnesslogic/src/test/java/com/plannaplan/configutils/FileReaderTest.java b/buisnesslogic/src/test/java/com/plannaplan/configutils/FileReaderTest.java new file mode 100644 index 0000000..f293f74 --- /dev/null +++ b/buisnesslogic/src/test/java/com/plannaplan/configutils/FileReaderTest.java @@ -0,0 +1,21 @@ +package com.plannaplan.configutils; + +import static org.junit.Assert.assertTrue; + +import java.io.InputStream; + +import com.plannaplan.models.FileData; + +import org.junit.Test; + +public class FileReaderTest { + @Test + public void shoulReturnNull() { + InputStream inputStream = getClass().getClassLoader().getResourceAsStream("Zajecia.xlsx"); + FileReader r = new FileReader(inputStream); + FileData d = r.read(); + assertTrue(d.getRows().next().getCell(0).toString().equals("1.0")); + assertTrue(d.getKeys().size() == 22); + assertTrue(d != null); + } +} \ No newline at end of file diff --git a/buisnesslogic/src/test/resources/Zajecia.xlsx b/buisnesslogic/src/test/resources/Zajecia.xlsx new file mode 100644 index 0000000..ade4cad Binary files /dev/null and b/buisnesslogic/src/test/resources/Zajecia.xlsx differ