TestImportExcel.java
package com.test;
import com.util.ExcelAnnotation;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* Created by IntelliJ IDEA.
* User: CYG
* Date: 12-3-5
* Time: 下午4:39
* To change this template use File | Settings | File Templates.
*/
public class TestImportExcel extends HibernateDaoSupport {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public Collection impExcel(String className, File file, String... pattern) throws Exception {
Collection classList = new ArrayList();//解析后每条PatrolGps数据
Class clazz = Class.forName(className);//实例化类
int exceptionNum = 0;
try {
/**
* 类反射得到调用方法
*/
Field filed[] = clazz.getDeclaredFields();
// 将所有标有Annotation的字段,也就是允许导入数据的字段,放入到一个map中
Map fieldMap = new HashMap();
// 循环读取所有字段
for (int i = 0; i < filed.length; i++) {
Field f = filed[i];
// 得到单个字段上的Annotation
ExcelAnnotation exa = f.getAnnotation(ExcelAnnotation.class);
// 如果标识了Annotationd的话
if (exa != null) {
// 构造设置了Annotation的字段的Setter方法
String fieldName = f.getName();
String setMethodName = "set"
+ fieldName.substring(0, 1).toUpperCase()
+ fieldN