该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
献上方法
// 函数getLine返回Sheet的一行数据 excel2003
private String getLine(HSSFSheet sheet, int row) { // 根据行数取得Sheet的一行
HSSFRow rowline = sheet.getRow(row); // 创建字符创缓冲区 StringBuffer buffer = new StringBuffer(); // 获取当前行的列数
int filledColumns;
try {
filledColumns = rowline.getLastCellNum();
} catch (NullPointerException e) {
return "";
}
HSSFCell cell = null;
// 循环遍历所有列
for (int i = 0; i < filledColumns; i++) {
// 取得当前Cell
cell = rowline.getCell((short) i);
String cellvalue = null;
if (cell != null) {
// 判断当前Cell的Type
switch (cell.getCellType()) {
// 如果当前Cell的Type为NUMERIC
case HSSFCell.CELL_TYPE_NUMERIC: {
// 判断当前的cell是否为Date
if (HSSFDateUtil.isCellDateFormatted(cell)) {
// 如果是Date类型则,取得该Cell的Date值 Date date = cell.getDateCellValue();
// 把Date转换成本地格式的字符串 cellvalue = cell.getDateCellValue().toString();
}
// 如果是纯数字
else {
// 取得当前Cell的数值 Integer num = new Integer((int) cell.getNumericCellValue());
cellvalue = String.valueOf(num);
}
break;
}
// 如果当前Cell的Type为STRING
case HSSFCell.CELL_TYPE_STRING:
// 取得当前的Cell字符串 cellvalue = cell.getRichStringCellValue().toString().replaceAll("'", "''");
break;
//如果当前Cell的Type为boolean
case HSSFCell.CELL_TYPE_BOOLEAN:
cellvalue = cell.getBooleanCellValue() + "";
break;
//处理公式型 case HSSFCell.CELL_TYPE_FORMULA:
cellvalue = getRightStr(cell.getNumericCellValue() + "");
break;
// 默认的Cell值 default:
cellvalue = "";
}
} else {
cellvalue = "";
}
// 在每个字段之间插入分割符
buffer.append(cellvalue).append(EXCEL_LINE_DELIMITER);
}
// 以字符串返回该行的数据 return buffer.toString();
}