在论坛查了很多Excel导入的 也没找着我要的 希望大家给我传个Excel导入的代码Excel表只需要分3列 分别是 姓名 地址 班级行数不限现在要在页面有按钮 可以点击选择导入 将指定的Excel导入到数据库中  数据库是orcal 自己弄的个类是
Workbook book=Workbook.getWorkbook(new File(path));
   //取得一张表
   Sheet sheet=book.getSheet(sheetNumber);
     //取得表的行数
   int rows=sheet.getRows();
   //取得表的列数
   int cols=sheet.getColumns();
   for(int i=0;i<rows;i++){
    for(int j=0;j<cols;j++){
     Cell cell=sheet.getCell(j,i);
     String result=cell.getContents();
只需要支持导入单个Excel到单个数据表中  数据库的存储是用hibernate映射的 我看网上好多都是直接往库里插的 希望大家给我点启示吧 

解决方案 »

  1.   

    其实就是查询excel的行和列,然后插入:
    /*
     * 查询excel表中的数据
     */
    public List excelCode(String fileExcel) throws FileNotFoundException, IOException
    {
    List excelCodeList=new ArrayList();

    String fileToBeRead=fileExcel; 
    HSSFWorkbook workbook= new HSSFWorkbook(new FileInputStream(fileToBeRead)); 
    HSSFSheet sheet= workbook.getSheet("Sheet1"); 
    rows = sheet.getPhysicalNumberOfRows(); 
    for (int r = 0; r < rows; r++) 

    HSSFRow row = sheet.getRow(r); 
    if (row != null) 

    int cells = row.getPhysicalNumberOfCells(); 
    for (short c = 0; c < cells; c++) 

    HSSFCell cell = row.getCell(c); 
    if (cell != null)

    switch (cell.getCellType()) 

    case HSSFCell.CELL_TYPE_FORMULA : 
    break; 
    case HSSFCell.CELL_TYPE_NUMERIC: 
    excelCodeList.add((long)cell.getNumericCellValue());
    break; 
    case HSSFCell.CELL_TYPE_STRING: 
    excelCodeList.add(cell.getStringCellValue());
    break; 
    default: 

    }
    }
    }
    }
    return excelCodeList;
    }
    /*
     * excel表中数据写入数据库
     */
    public List intoCode(List excelCodeList)
    {
    List doubleCodeList=new ArrayList();
    for(int i=0;i<excelCodeList.size();i++)
    {
    if(userService.getActivityNum(String.valueOf(excelCodeList.get(i))).size()==0)
    {
    ActivationCode activationCode=new ActivationCode();
    activationCode.setCode(String.valueOf(excelCodeList.get(i)));
    activationCode.setUserId("");
    activationCode.setCodeType(ConstantVar.VIP);
    activationCode.setUseSign(ConstantVar.CODE_USE);
    userService.save(activationCode);
    }
    else
    {
    doubleCodeList.add(excelCodeList.get(i));
    }
    }
    return doubleCodeList;
    }
      

  2.   

    谢谢 启示 现在有两个问题  第一 上传文件路径是如何获得第二 数据存入时的顺序  取出的数据存入List 但是在存的时候有个顺序问题 第一列姓名 第二列地址 第三列 班级     把Excel表中相对应的列中的数据存入库里 当然这个得定死     那存List的话 顺序不是很难存正确吗     
      

  3.   

    导入 首先要上传到服务器端然后读取文件  数据封装后 插入到库
    1.上传路径可以用组建上传可以用smartUpload  然后服务器读取 根据上传服务器路径取得文件 读取
    2.字符匹配可以用读取excel默认头一行  输入字符串进行比对  然后进行匹配  一般excel头一行就是 "姓名" "性别" 这些字符串