/**
* Դ�������ƣ�POIUtils.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.biz.core
* ����˵����$desc
* ����ĵ���
* ���ߣ�sundl
*/
package com.hundsun.ares.studio.core.excel;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
/**
* @author sundl
*
*/
public class POIUtils {
public static String[] readRowStrings(HSSFRow row, HSSFFormulaEvaluator evaluator) {
List<String> strings = new ArrayList<String>();
for (Cell cell : row) {
String str = getCellStringValue((HSSFCell)cell, evaluator);
strings.add(str);
}
return strings.toArray(new String[0]);
}
public static String[] readRowStrings(HSSFRow row, int startCol, FormulaEvaluator evaluator) {
List<String> strings = new ArrayList<String>();
int max = row.getLastCellNum();
for (int i = startCol; i < max; i++) {
HSSFCell cell = row.getCell(i);
if (cell == null) {
strings.add(StringUtils.EMPTY);
} else {
String str = getCellStringValue(cell, evaluator);
strings.add(str);
}
}
return strings.toArray(new String[0]);
}
public static String getCellStringValue(Cell cell, FormulaEvaluator evaluator) {
if (cell != null) {
switch (evaluator.evaluateInCell(cell).getCellType()) {
case Cell.CELL_TYPE_BOOLEAN:
return BooleanUtils.toStringTrueFalse(cell.getBooleanCellValue());
case Cell.CELL_TYPE_NUMERIC:
// FIXME ������ʵ�ų��� �������͵�����
return String.valueOf((long)cell.getNumericCellValue());
case Cell.CELL_TYPE_STRING:
return cell.getStringCellValue().trim();
case Cell.CELL_TYPE_BLANK:
break;
case Cell.CELL_TYPE_ERROR:
// CELL_TYPE_FORMULA will never occur
case Cell.CELL_TYPE_FORMULA:
break;
}
}
return StringUtils.EMPTY;
}
}