该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package com.poi.readServlet;
import java.io.FileInputStream;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import com.dto.EmployeeInfo;
public class Test {
public static void main(String[] args) {
String filePath ="E://Java/test.xls";//new String(request.getParameter("file").getBytes("ISO-8859-1"), "gb2312");
try {
//得到exl表格
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filePath));
// 创建工作簿
// HSSFWorkbook workBook = new HSSFWorkbook(fs);
//2007
XSSFSheet workBook = new XSSFSheet(fs);
// 创建工作表第一个
XSSFSheet sheet = workBook.getSheetAt(0);
List infos = new ArrayList();
EmployeeInfo employeeInfo = null;
//行
HSSFRow row = null;
//日期格式化
DateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
for(int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) {
row = sheet.getRow(j);
employeeInfo = new EmployeeInfo();
employeeInfo.setName(getCellValue(row.getCell(0)));
employeeInfo.setOld(getCellValue(row.getCell(1)));
employeeInfo.setCreatTime(ft.parse(getCellValue(row.getCell(2))));
infos.add(employeeInfo);
}
//输出信息
for (int i = 0; i < infos.size(); i++) {
System.out.println("第"+i+"行数据为:"+infos.get(i).getName()+"---"+infos.get(i).getOld()+"
");
}
//插入sql
// insert(infos);
} catch (Exception ex) {
ex.printStackTrace();
}
}
//判断从Excel文件中解析出来数据的格式
public static String getCellValue(HSSFCell cell){
String value = null;
//简单的查检列类型
switch(cell.getCellType())
{
case HSSFCell.CELL_TYPE_STRING://字符串
value = cell.getRichStringCellValue().getString();
break;
case HSSFCell.CELL_TYPE_NUMERIC://数字
if (HSSFDateUtil.isCellDateFormatted(cell)) {// 处理日期格式、时间格式
SimpleDateFormat sdf = null;
if (cell.getCellStyle().getDataFormat() == HSSFDataFormat
.getBuiltinFormat("h:mm")) {
sdf = new SimpleDateFormat("HH:mm");
} else {// 日期
sdf = new SimpleDateFormat("yyyy-MM-dd");
}
java.util.Date date = cell.getDateCellValue();
value = sdf.format(date);
} else if (cell.getCellStyle().getDataFormat() == 58) {
// 处理自定义日期格式:m月d日(通过判断单元格的格式id解决,id的值是58)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
double values = cell.getNumericCellValue();
java.util.Date date = org.apache.poi.ss.usermodel.DateUtil.getJavaDate(values);
value = sdf.format(date);
} else {
double values = cell.getNumericCellValue();
CellStyle style = cell.getCellStyle();
DecimalFormat format = new DecimalFormat();
String temp = style.getDataFormatString();
// 单元格设置成常规
if (temp.equals("General")) {
format.applyPattern("#");
}
value = format.format(values);
}
break;
case HSSFCell.CELL_TYPE_BLANK:
value = "";
break;
case HSSFCell.CELL_TYPE_FORMULA:
value = String.valueOf(cell.getCellFormula());
break;
case HSSFCell.CELL_TYPE_BOOLEAN://boolean型值
value = String.valueOf(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_ERROR:
value = String.valueOf(cell.getErrorCellValue());
break;
default:
break;
}
return value;
}
}