java如何读取复杂Excel内容
格式如下图所示:当然实际上还要比这个复杂多了,要求把客户等级和客户编号两个分别读出来当作是数据库的两个不同列,而下面的客户需求说明(具体行数不固定)等信息读到数据库的一个列里,那一个Excel里可能有一个客户的这种信息,也有可能有几十个上百个这样的信息,那java的jxl怎么把这些内容给读取出来,我之前有做过比较简单的那种,固定格式的,一行几列,每列的格式都是固定的,但现在这种我就不知咋办了,请各位积极帮忙想想,在此先谢过。

解决方案 »

  1.   

    Excel图片好像看不见啊,那我就手写几个类似的吧:
    客户等级  客户编号
    A          A10
    客户说明     1231321
    其它说明      132212客户等级  客户编号
    A          A51
    客户说明     1231321
    其它说明      132212
    补充         可呆呆呆……客户等级  客户编号
    B          B210
    客户说明     1231321
    其它说明      132212
      

  2.   

    大家或者是点击一个这个链接来看看Excel的格式样子:http://home.51.com/minmaosen/photo/item/100117605.html
      

  3.   

    这根本就不是一个操作上的问题,而是一个算法上的问题。
    1.获取sheet
    2.获取sheet的行和列数 sheet.getColumns() sheet.getRows();
    3.循环读取内容。
    当读取到
    "客户等级"时判断下一个是不是"客户编号"并对应的读取下一列的数。
    这里可以构建一个客户对象。然后将这些信息放到对象中,至于字符串处理这块就不多说了,看自己的经验。
    读完客户等级和编号后接着,继续向下读取,当空到空行时,停。并将客户的需求说明,补充说明等放到对象的第三列(如果你的数据库只按这三列读取的话,就这样操作),然后,将这个对象传给一个插入数据库的业务逻辑,插入到数据库中。本来,我也是个新手,从学Java到学Web到学Struts到现还不到七个月的时间。如果没能理解你的意思,还请见谅。
      

  4.   

    poi能解决很多问题啊,仔细读文档
      

  5.   

    何不直接将数据导入到数据库中呢  
    POI可以读取到excl中的每个单元格 需要添加POI.jar包
    代码如下:
                      HSSFWorkbook sf = new HSSFWorkbook(); //新建一个excl工作
    HSSFSheet st = sf.createSheet("编号"); //excl中的分页 左下角那个东西
    HSSFRow rw = st.createRow((short)0); / 一页中的一行
    HSSFCell ce = rw.createCell((short)0,HSSFCell.CELL_TYPE_STRING);//行中的列
                       我没做读取啦  倒起整就是啦
    用java.io读取excl文件  HSSFWordkbook.read = io; 我猜的  大概这样啦  错了我是不知道啦
      

  6.   

    嗯,3楼的给了我一些启发,因为EXCEL中的内容格式非常复杂,之前也是想写一些判别式来判断,但貌似判别式很难写,所有就想了解一下jxl或POI中有没有直接处理这种很复杂的EXCEL的读取的。
      

  7.   

    确实是算法问题,jxl已经提供了顺序读取row与cell的api,楼主只要将获取的内容根据需要进行处理即可。