各位大大们好,我是个新手。
最近在做个课程设计,是住房公积金管理系统,采用的是Struts1.2,Hibernate。现需要做个功能:将Excle表里的数据导入到数据库表里。可以的话,发个简单的例子

解决方案 »

  1.   

    去apache下个poi的jar, 然后先从excel里面读取数据, 然后再写入数据库中。 
      

  2.   

    在网上找个jxl.jar的实例看下就知道了 很简单的
      

  3.   


    InputStream is = file.getInputStream(); // excel 文件流
    Workbook workbook = Workbook.getWorkbook(is);
    Sheet sheet = workbook.getSheet(0); // excel 第一页int rowCount = sheet.getRows(); // 行数
    int columnCount = sheet.getColumns(); // 列数for (int i = 1; i < rowCount; i++) {
        AuditList audit = new AuditList();
        audit.setImpRecordId(impRecordId);    for (int j = 0; j < columnCount; j++) {
            Cell cell = sheet.getCell(j, i); // 单元格
            String content = cell.getContents(); // 数据        // 有 n 列写 n+1 个分支
            switch (j) {
            case 0:
                JavaBean.setProperty_1(content);
                break;
            case 1:
                JavaBean.setProperty_2(content);
                break;
            case 2:
                JavaBean.setProperty_3(content);
                break;
            case 3:
                JavaBean.setProperty_4(content);
                break;
            default:
                break;
            }
        }
    }
    is.close();
      

  4.   


    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
      

  5.   

    上边的代码是我拷的项目里的。
    还想着给你写个例子呢。倒结贴了。excel 样式:
      姓名 年龄 出生日期           薪水
      张三 30 1979-1-1 10000
      李四 24 1985-5-5 5000
      王五 33 1976-6-6 50000
      任六 20 1989-6-8 4000Record:public class Record { private String name;
    private int age;
    private java.util.Date birthday;
    private Double salary; public Record() {
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public int getAge() {
    return age;
    } public void setAge(int age) {
    this.age = age;
    } public java.util.Date getBirthday() {
    return birthday;
    } public void setBirthday(java.util.Date birthday) {
    this.birthday = birthday;
    } public Double getSalary() {
    return salary;
    } public void setSalary(Double salary) {
    this.salary = salary;
    }}
    ImportExcel:import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;public class ImportExcel { public static void main(String[] args) throws Exception {
    File excelFile = new File("yourExcel.xls");
    InputStream is = new FileInputStream(excelFile); // excel 文件流
    Workbook workbook = Workbook.getWorkbook(is);
    Sheet sheet = workbook.getSheet(0); // excel 第一页 Record[] recordArray = toRecordArray(sheet); is.close(); import2DB(recordArray);
    } /**
     * 将每行记录封装成 Record bean 放入数组中
     * 
     * @param sheet
     *            文档的一页
     * @return 所有记录组成的数组
     */
    public static Record[] toRecordArray(Sheet sheet) {
    int rowCount = sheet.getRows(); // 行数
    int columnCount = sheet.getColumns(); // 列数 Record[] recordArray = new Record[rowCount]; for (int i = 1; i < rowCount; i++) {
    Record record = new Record(); for (int j = 0; j < columnCount; j++) {
    Cell cell = sheet.getCell(j, i); // 单元格
    String content = cell.getContents(); // 数据 switch (j) {
    case 0:
    record.setName(content);
    break;
    case 1:
    record.setAge(Integer.valueOf(content));
    break;
    case 2:
    record.setBirthday(string2Date(content));
    break;
    case 3:
    record.setSalary(Double.valueOf(content));
    break;
    default:
    break;
    }
    }
    recordArray[i - 1] = record;
    }
    return recordArray;
    } /**
     * String 转换成 java.util.Date
     * 
     * @param dateString
     *            字符串类型的日期
     * @return 日期
     */
    public static Date string2Date(String dateString) {
    Date returnValue = null;
    String dateFormat = "yyyy-MM-dd";
    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); try {
    returnValue = sdf.parse(dateString);
    } catch (ParseException e) {
    e.printStackTrace();
    } return returnValue;
    } /**
     * S插入到数据库
     * 
     * @param recordArray
     *            excel 所有记录组成的数组
     * @return void
     */
    public static void import2DB(Record[] recordArray) {
    // TODO 使用批量插入方法优化,AOP 控制事务
    }
    }