package de.twenty11.skysail.server.ext.excel.test; import static org.junit.Assert.*; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.junit.Ignore; import org.junit.Test; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; public class ImportIT { private static final String FILE_EXTENSION_FOR_EXCEL = "*.xls"; @Test public void test() { try { final HSSFWorkbook workbook = new HSSFWorkbook(findeExcelResource().getInputStream()); HSSFSheet firstSheet = workbook.getSheetAt(0); final HSSFRow ersteZeile = firstSheet.getRow(0); for (int spaltenIndex = 0; spaltenIndex < ersteZeile.getLastCellNum(); spaltenIndex++) { System.out.println(ersteZeile.getCell(spaltenIndex).getStringCellValue()); } for (int zeilenIndex = 1; zeilenIndex < firstSheet.getLastRowNum(); zeilenIndex++) { final HSSFRow row = firstSheet.getRow(zeilenIndex); if (row == null) { return; } else { for (int spaltenIndex = 0; spaltenIndex < row.getLastCellNum(); spaltenIndex++) { HSSFCell cell = row.getCell(spaltenIndex); int ultimateCellType = ultimateCellType(cell); switch (ultimateCellType) { case HSSFCell.CELL_TYPE_STRING: System.out.println(cell.getStringCellValue()); break; case HSSFCell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_ERROR: System.out.println(cell.getErrorCellValue()); break; case HSSFCell.CELL_TYPE_NUMERIC: System.out.println(cell.getNumericCellValue()); break; default: System.out.println(cell.getStringCellValue()); break; } } } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //fail("Not yet implemented"); } private static int ultimateCellType(Cell c) { int type = c.getCellType(); if (type == Cell.CELL_TYPE_FORMULA) type = c.getCachedFormulaResultType(); return type; } private Resource findeExcelResource() throws IOException { String pfad = "classpath*:/input/"; String filter = System.getProperty("input.filter"); if (filter != null && !filter.isEmpty()) { //log.debug("Filtering: " + filter); pfad = pfad + filter; } //log.info("Searching for files in [" + pfad + FILE_EXTENSION_FOR_EXCEL + "]"); PathMatchingResourcePatternResolver pmrpr = new PathMatchingResourcePatternResolver(); if (pmrpr.getResources(pfad + FILE_EXTENSION_FOR_EXCEL).length == 0) { throw new IllegalStateException("Keine Excel-Dateien gefunden!"); } Resource[] resources = pmrpr.getResources(pfad + FILE_EXTENSION_FOR_EXCEL); return resources[0]; } }