请问下:我要在单击浏览文件选择后,选择相应的文件单击导入文件后我怎么才能在数据库中有相应的记录?要求:
1:待导入的文件必须为txt扩展名的文本文件或Excel文件
2:txt文件内容的格式必须为一行中包含号段、区域名称、区号,且用逗号隔开,行与行之间不能间隔
3:Excel文件内容的格式为号段,区域名称,区号在前3列
4:导入的文件只覆盖原有的内容,不删除已有的内容
我采用的是struts2+iBATIS,请问下这个action应该怎么写?。谢谢!

解决方案 »

  1.   

    主要是设计ResultType,
    action倒是很简单
      

  2.   

    workbook = Workbook.getWorkbook(import_file);
    Sheet sheet = workbook.getSheet(0);
    Cell cell = null;
    int columnCount = 4;
    String content = getText("lable.stbrand");
    int rowCount = sheet.getRows();
    for (int i = 0; i < rowCount; i++) {
    ST_Brand st = new ST_Brand();
    for (int j = 0; j < columnCount; j++) { // 注意,这里的两个参数,第一个是表示列的,第二才表示行
    cell = sheet.getCell(j, i);
    // 要根据单元格的类型分别做处理,否则格式化过的内容可能会不正确
    if (j == 0) {
    content += cell.getContents() + ",";
    st.setMsisdnsegment(cell.getContents());
    } else if (j == 1) {
    content += cell.getContents() + ";";
    st.setAreaname(cell.getContents());
    }else if(j==2)
    {
    content += cell.getContents() + ";";
    st.setAreacode(cell.getContents());
    }else if(j==3)
    {
    content += cell.getContents() + ";";
    st.setSmsccode(cell.getContents());
    }
    }
    set.add(st);
    }
    stbrand.insertBrandBatch(set);dao中 
    public void insertBrandBatch(Set set) {
    final Iterator it = set.iterator();
    getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
    public Object doInSqlMapClient(SqlMapExecutor executor)
    throws SQLException {
    executor.startBatch(); while (it.hasNext()) {
    ST_Brand s = (ST_Brand) it.next();
    executor.update("insertsBrand", s);
    }
    return executor.executeBatch();
    }
    });
    }
      

  3.   

    如果是txt文件导入的话,导入后用IO,如果是excle导入的话,你参考一下2楼的,要确保有jxl.jar包。是java读写excle需要用的包。
      

  4.   

    我想请问下workbook = Workbook.getWorkbook(import_file); 
    Sheet sheet = workbook.getSheet(0); 
    Cell cell = null; 
    int columnCount = 4; 
    String content = getText("lable.stbrand“)是不是应该导入什么JAR包?。。workbook是什么意思?。 
    谢谢!
      

  5.   

    jxl包.java处理Excel文档2种方式,一种是jxl,一种是POIjxl适合初级使用,另外在复制等方面比POI易用,但是在支持公式等方面无法做到.POI适合中高级使用,但是很多简单的方法系统没有实现,需要自己编码实现.比如拷贝Cell等等.但是由于提供了大量的最原子的操作,所以很多你能想到的事情都可以做到,但是编码复杂