package org.asoware.budget.conv; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class WorkbookProcessor { private static Log log = LogFactory.getLog(Converter.class); private HSSFWorkbook workbook; public WorkbookProcessor(File file) throws IOException { POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file)); workbook = new HSSFWorkbook(fs); } public void process() throws IOException { for (int iSheet = 0; iSheet < workbook.getNumberOfSheets(); iSheet++) { String sheetName = workbook.getSheetName(iSheet); HSSFSheet sheet = workbook.getSheetAt(iSheet); if (!isDataWorkSheet(sheetName)) { log.info("Ignoring sheet: '" + workbook.getSheetName(iSheet) + "'"); continue; } WorksheetProcessor sheetProcessor = new WorksheetProcessor(sheet); try { sheetProcessor.process(); } catch (SheetProcessingException e) { e.printStackTrace(); } } /* HSSFRow row = sheet.getRow(2); HSSFCell cell = row.getCell((short) 3); if (cell == null) cell = row.createCell((short) 3); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue("a test"); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("workbook.xls"); workbook.write(fileOut); fileOut.close(); */ } private boolean isDataWorkSheet(String sheetName) { SimpleDateFormat format = new SimpleDateFormat("MMMM yyyy"); try { format.parse(sheetName); return true; } catch (ParseException e) { return false; } } }