求助POI操作excel的问题!
本人最近做一个数据库的文件导入功能,需要从excel中读取数据代码如下:
/**
* 获取单元格数据内容为字符串类型的数据
*
* @param cell
* Excel单元格
* @return String 单元格数据内容
* @throws ParseException
*/
private String getStringCellValue(HSSFCell cell) throws ParseException {
String strCell = "";
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
strCell = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
strCell = String.valueOf((int)cell.getNumericCellValue());
boolean flag1=HSSFDateUtil.isCellDateFormatted(cell);
if(flag1){
strCell = DateUtil.dateFormat(cell.getDateCellValue(), "yyyy-MM-dd HH:mm");
}
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
strCell = String.valueOf(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_BLANK:
strCell = "";
break;
default:
strCell = String.valueOf(cell.getDateCellValue());
break;
}
if (strCell.equals("") || strCell == null) {
return "";
}
if (cell == null) {
return "";
}
return strCell;
}
//取得每行的值存入一个数组
public String[] getClomn(HSSFRow row) throws ParseException {
String[] clomn = new String [20];//;
HSSFCell cell;
for (int i = 0; i < 13; i++) {
row.getCell((short)i).setCellType(HSSFCell.CELL_TYPE_STRING);
clomn[i] = getStringCellValue(row.getCell((short) i));
// clomn[i]=(String) iterator.next();
}
return clomn;
读取Stringde的时候没有问题,但是在读取excel中的数字格式数据的时候出现了数据丢失现象,在数据库执行导入的时候没有报错,但是入库的数据明显不对,只要大于
‘214332728’(数字可能不准确记不清楚了)这个数字的数据数据库中全为这个数,原始数据全部丢失:
1、由于库中数据特殊,一般都是10位以上
2、数据量大,单纯的在表中全部转为文本格式,读取的时候还是出错。
求助高手解答如何读取数据值大的数据?