poi-3.11-beta2-20140822.jar操作excel方法
根据不同类型读取值的方法:
// 获取单元格内不同类型的值
public String getValueByType(HSSFCell cell) {
String value = "";
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
if (date != null) {
value = new SimpleDateFormat("yyyy-MM-dd").format(date);
} else {
value = "";
}
} else {
value = new DecimalFormat("0").format(cell
.getNumericCellValue());
}
break;
case HSSFCell.CELL_TYPE_FORMULA:
// 导入时如果为公式生成的数据则无值
if (!cell.getStringCellValue().equals("")) {
value = cell.getStringCellValue();
} else {
value = cell.getNumericCellValue() + "";
}
break;
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_ERROR:
value = "";
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
value = (cell.getBooleanCellValue() == true ? "Y" : "N");
break;
default:
value = "";
}
} else {
value = "";
}
return value;
} /**
*
* 去掉字符串右边的空格
*
* @param str
* 要处理的字符串
*
* @return 处理后的字符串
*/
public String rightTrim(String str) {
if (str == null) {
return "";
}
int len = str.length();
for (int i = len - 1; i >= 0; i--) {
if (str.charAt(i) != 0x20) {
break;
}
len--;
}
return str.substring(0, len);
}
一些操作excel的常用方法:
工作空间(获取行):
getSheetAt(int i);// 根据编号获取excel的工作空间 HSSFSheet
getSheet(String arg0);// 根据工作空间名获取工作空间 HSSFSheet
在工作空间中是按行读取的,
获取行的方法
row.getLastRowNum() 获取最后有值的行号(从0开始)
row.getRow(int i)获取指定编号的行
获取单元格的方法
getLastCellNum() 获取最后有值的单元格编号(从0开始)
getCell(int i)// 获取指定编号的单元格
如何使用这些方法:
File file = new File("E://dic_item.xls");
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
// 打开HSSFWorkbook
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook wb = new HSSFWorkbook(fs);wb.getSheetAt(4);