在学习poi之前,没有碰到过这一类的问题,是因为上班的时候经理说我们公司的客户有这一方面的需求,所以要我去做,于是开始了我的POI之路。
POI是apache公司开发的一个开源框架,
在云学堂的第一个Java项目,是解析excel的,也不是算一个项目,我做的一部分知识项目的一个部分。在此我总结一下我在此项目中所用到的知识。
第一,获取当前时间。Java中封装一个日历类,即Calender,得到一个calender类的方法是Calendar ca = Calendar.getInstance();通过这个new出来的日历对象ca我们可以得到当前年份ca.get(Calendar.YEAR),当前月ca.get(Calender.MONTH)+1,当前日ca.get(Calendar.DATE)。
第二,后台获取前端上传的文件。想要上传文件,我们得添加文件上传的jar包,在这里我们使用APACHE的commons fileupload 。如果是使用Spring MVC 框架,通过Ajax上传表单,且表单中包含文件时,form表单要声明 entype=“multipart/form-date” 而Ajax中的content-type得声明为false,而Spring MVC的@requestMapping consumes不要设置。在程序中的步骤,1) 创建文件解析对象 DiskFileUpload diskFileUpload = new DiskFileUpload(); 2)解析request中的文件List<FileItem>list=diskFileUpload.parseRequest(request);
3)判断上传文件的类型,FileItem有一个方法getCon疼Type(),可以获取上传文件的类型,如果是Excel表单,则解析。 4) FileItem的方法getInputStream()把文件换成流。FileItem常用的方法:http://blog.csdn.net/u011498933/article/details/52914649
第三,使用POI类对Excel的文件流进行解析。XSSFWorkbook workBook=new XSSFWorkbook(is);获取表单XSSFSheet sheet = workBook.getSheetAt(numSheet);获取行XSSFRow row = sheet.getRow(rowNum);获取单元格XSSFCell cell = row.getCell(cellNum); 根据单元格的类型,获取取值方式。