Here are the answers for you questions:
1) Could I read somehow 01-Sep-13 as string: "01-Sep-13";
Yes you can. You need to set the Cell type to String before reading it. Something like this:
.
.
.
int fcell = row.getFirstCellNum();// first cell number of excel
int lcell = row.getLastCellNum(); //last cell number of excel
while (rows.hasNext()) {
row = (XSSFRow) rows.next();//increment the row iterator
for (int i = fcell; i < lcell; i++) {
row.getCell(i).setCellType(org.apache.poi.ss.usermodel.Cell.CELL_TYPE_STRING);
.
.
..//processing
.
.
}
}
2.)Could I convert Date value to string in case I have different date patterns (ddMMyyyy) and (dd-MMM-yy);
Since the first answer is already giving you the String value.
Still to convert a String value to date you can use SimpleDateFormat as @rgettman and @Keerthi suggested
Hope this will help...:)