POI解析excel之----经典导入



   private File chooseExcel;//从前台传来的file,可以是form表单提交,ajaxFileUpload

   InputStream file = new FileInputStream(chooseExcel);//创建待解析的对象

   int row=Integer.valueOf(rows)-1;//获取前台传过来的行(从第几行开始读)


   int col=Integer.valueOf(cols)-1;;//获取前台传过来的列(从第几列开始读)


   XSSFWorkbook wb = new XSSFWorkbook(file);//


   XSSFSheet sheet = wb.getSheetAt(0);


   XSSFRow row1=sheet.getRow(0);//第一行为参照,必须是整齐的表格,如果不整齐,循环所有行选取最大的列


   int closNum=(int)row1.getLastCellNum();//获取最大列


   int rowNum = sheet.getLastRowNum();//获取最大行号,确保没有空行,若有需要判断


   String phones="";


   DecimalFormat df = new DecimalFormat("#"); //解析电话号码专用

 
   for (int i=row; i <= rowNum; i++) {


    for (int j = col; j < closNum; j++) {


        sheet.getRow(row).getCell(j).setCellType(Cell.CELL_TYPE_NUMERIC);//CELL_TYPE_STRING


        phones+=df.format(sheet.getRow(i).getCell(j).getNumericCellValue())+",";//用逗号分隔
      }
   }

然后将phones发送为json

最后一定要关闭file.cose()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
poi解析excel功能参数说明 此项目是基于springMVC实现的,基本流程为从前台jsp页面使用Ajax文件上传导入excel文件(.xls(97-03)/.xlsx(07以后)),传到后台controller调用相应工具类解析后返回指定参数做后续处理. 1. POIUtil.java工具类 解析通过MutilpartFile导入Excel解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,通过workbook.getNumberOfSheets()获取工作簿数量,遍历工作簿,sheet.getLastRowNum()获取最大行数,将每行数据放入List list = new Array List(),并根据excel数据类型将器转换为字符串、数字、Boolean、公式、空值类型防止出现错误,最后返回一个list. 2. ExcelUtil.java工具类 解析通过MutilpartFile导入Excel解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,采用Apache的POI的API来操作Excel,读取内容后保存到List中,再将List转Json(使用Linked,增删快,与Excel表顺序保持一致),Sheet表1————>List1<Map> 步骤1:根据Excel版本类型创建对于的Workbook以及CellSytle 步骤2:遍历每一个表中的每一行的每一列,这里做了些小改动,因为后续可能解析过后可能会保存入数据库,这里为第一行数据添加一个自定义表头 String[] p = new String[]{"name","age","sex","tel","address","e-mail","phone"}; 遍历的列数量以p的length为准 步骤3:一个sheet表就是一个Json,多表就多Json,对应一个 List 一个sheet表的一行数据就是一个 Map 一行中的一列,就把当前列头为key,列值为value存到该列的Map中 Map 一个线性Hash Map,以Excel的sheet表顺序,并以sheet表明作为key,sheet表转换Json后的字符串作为value 最后返回一个LinkedHashMap 3. ExcelToJsonPoi.java工具类 这个与上面工具类类似,不过这个是解析本地excel文件不是使用的流,使用迭代遍历sheet工作簿与每行每列的值,将所有类型作为String类型处理返回一个json对象输出至控制台
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值