public
class
PoiExcelParser
{
private
Sheet
sheet;
LinkedList[]
result;
private
void
loadExcel(String
filePath) {
FileInputStream
inStream =
null
;
try
{
inStream
=
new
FileInputStream(
new
File(filePath));
Workbook
workBook = WorkbookFactory.create(inStream);
sheet
= workBook.getSheetAt(
0
);
}
catch
(Exception
e) {
e.printStackTrace();
}
finally
{
try
{
if
(inStream!=
null
){
inStream.close();
}
}
catch
(IOException
e) {
e.printStackTrace();
}
}
}
private
String
getCellValue(Cell cell) {
String
cellValue =
""
;
DataFormatter
formatter =
new
DataFormatter();
if
(cell
!=
null
)
{
switch
(cell.getCellType())
{
case
Cell.CELL_TYPE_NUMERIC:
if
(DateUtil.isCellDateFormatted(cell))
{
cellValue
= formatter.formatCellValue(cell);
}
else
{
double
value
= cell.getNumericCellValue();
int
intValue
= (
int
)
value;
cellValue
= value - intValue ==
0
?
String.valueOf(intValue) : String.valueOf(value);
}
break
;
case
Cell.CELL_TYPE_STRING:
cellValue
= cell.getStringCellValue();
break
;
case
Cell.CELL_TYPE_BOOLEAN:
cellValue
= String.valueOf(cell.getBooleanCellValue());
break
;
case
Cell.CELL_TYPE_FORMULA:
try
{
cellValue
= String.valueOf(cell.getNumericCellValue());
}
catch
(IllegalStateException
e){
cellValue
= String.valueOf(cell.getRichStringCellValue());
}
break
;
case
Cell.CELL_TYPE_BLANK:
cellValue
=
""
;
break
;
case
Cell.CELL_TYPE_ERROR:
cellValue
=
""
;
break
;
default
:
cellValue
= cell.toString().trim();
break
;
}
}
return
cellValue.trim();
}
public
void
getData(){
int
rowNum
= sheet.getLastRowNum() +
1
;
result
=
new
LinkedList[rowNum];
for
(
int
i=
0
;i<rowNum;i++){
Row
row = sheet.getRow(i);
result[i]
=
new
LinkedList();
for
(
int
j=
0
;j<row.getLastCellNum();j++){
Cell
cell = row.getCell(j);
String
str = getCellValue(cell);
result[i].add(str);
}
}
}
}