From: <de...@us...> - 2015-09-17 23:40:56
|
Revision: 9169 http://sourceforge.net/p/fudaa/svn/9169 Author: deniger Date: 2015-09-17 23:40:54 +0000 (Thu, 17 Sep 2015) Log Message: ----------- CRUE-662 Added Paths: ----------- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluExcelCsvFileReader.java Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluExcelCsvFileReader.java =================================================================== --- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluExcelCsvFileReader.java (rev 0) +++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluExcelCsvFileReader.java 2015-09-17 23:40:54 UTC (rev 9169) @@ -0,0 +1,102 @@ +/* + GPL 2 + */ +package org.fudaa.ctulu.table; + +import com.Ostermiller.util.CSVParser; +import com.memoire.fu.FuLog; +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileReader; +import java.io.InputStream; +import java.io.File; +import java.io.Reader; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; +import org.fudaa.ctulu.CtuluLibFile; + +/** + * + * @author Frederic Deniger + */ +public class CtuluExcelCsvFileReader { + + final File file; + + public CtuluExcelCsvFileReader(File file) { + this.file = file; + } + + public String[][] readFile() { + final String nameToLowerCase = file.getName().toLowerCase(); + if (nameToLowerCase.endsWith("xlsx") || nameToLowerCase.endsWith("xls")) { + List<String[]> rows = new ArrayList<String[]>(); + InputStream is = null; + try { + is = new FileInputStream(file); + Workbook wb = WorkbookFactory.create(is); + Sheet sheetAt = wb.getSheetAt(0); + for (Row row : sheetAt) { + List<String> cols = new ArrayList<String>(); + for (Cell cell : row) { + cols.add(getValue(cell)); + } + rows.add(cols.toArray(new String[cols.size()])); + } + } catch (Exception ex) { + FuLog.error(ex); + } finally { + CtuluLibFile.close(is); + } + final String[][] toArray = rows.toArray(new String[rows.size()][]); + return toArray; + + } else { + return readCsv(); + } + } + + protected String[][] readCsv() { + String[][] values = null; + Reader reader = null; + try { + reader = new FileReader(file); + values = new CSVParser(new BufferedReader(reader), ';').getAllValues(); + } catch (Exception ex) { + FuLog.error(ex); + } finally { + CtuluLibFile.close(reader); + } + return values; + } + + protected String getValue(Cell cell) { + switch (cell.getCellType()) { + case Cell.CELL_TYPE_NUMERIC: + return Double.toString(cell.getNumericCellValue()); + case Cell.CELL_TYPE_STRING: + return cell.getStringCellValue(); + default: + try { + return Double.toString(cell.getNumericCellValue()); + } catch (Exception ex) { + FuLog.error(ex); + try { + return cell.getStringCellValue(); + } catch (Exception ex1) { + FuLog.error(ex); + + } + } + } + return StringUtils.EMPTY; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2016-04-18 13:48:10
|
Revision: 9349 http://sourceforge.net/p/fudaa/svn/9349 Author: deniger Date: 2016-04-18 13:48:08 +0000 (Mon, 18 Apr 2016) Log Message: ----------- CRUE-697 Modified Paths: -------------- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluExcelCsvFileReader.java Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluExcelCsvFileReader.java =================================================================== --- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluExcelCsvFileReader.java 2016-04-18 12:27:35 UTC (rev 9348) +++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluExcelCsvFileReader.java 2016-04-18 13:48:08 UTC (rev 9349) @@ -82,6 +82,8 @@ return Double.toString(cell.getNumericCellValue()); case Cell.CELL_TYPE_STRING: return cell.getStringCellValue(); + case Cell.CELL_TYPE_BLANK: + return null; default: try { return Double.toString(cell.getNumericCellValue()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |