首页 > 编程语言 > 详细

java导入excel,多sheet

时间:2020-09-03 19:19:15      阅读:65      评论:0      收藏:0      [点我收藏+]

直接上代码

  

// 1、创建一个DiskFileItemFactory工厂
  DiskFileItemFactory factory = new DiskFileItemFactory();
// 2、创建一个文件上传解析器
  ServletFileUpload upload = new ServletFileUpload(factory);
  Map<String, Object> map = new HashMap<String, Object>();
// 解决上传文件名的中文乱码
  upload.setHeaderEncoding("UTF-8");
  InputStream in = null;
  if (!ServletFileUpload.isMultipartContent(request))
    {
  // 按照传统方式获取数据
    /* return ""; */
  }

// 4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
List<FileItem> list = upload.parseRequest(request);
  for (FileItem item : list) {
  // 如果fileitem中封装的是普通输入项的数据
  if (item.isFormField()) {
    String name = item.getFieldName();
    // 解决普通输入项的数据的中文乱码问题
    String value = item.getString("UTF-8");
    map.put(name, value);
  } else {// 如果fileitem中封装的是上传文件
    // 得到上传的文件名称,
    String filename = item.getName();
    String filedsname = item.getFieldName();
  if (filename == null || filename.trim().equals("")) {
    continue;
  }
// 注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:
// c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
// 处理获取到的上传文件的文件名的路径部分,只保留文件名部分
  filename = filename.substring(filename.lastIndexOf("\\") + 1);
  // 获取item中的上传文件的输入流
    in = item.getInputStream();
    }
  }
} catch (UnsupportedEncodingException e) {
  e.printStackTrace();
} catch (FileUploadException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
} catch (Exception e) {
  e.printStackTrace();
}

 

 

// 读取Excel文件并存入数据库
Workbook wb = new XSSFWorkbook(in);
// 获取Excel文档中的sheet
for(int sheetIndex=0;sheetIndex<wb.getNumberOfSheets();sheetIndex++)

  //这里是第一个sheet 有跟多的话就判断更多就行了

  if(sheetIndex==0) {

  Sheet sht = wb.getSheetAt(sheetIndex);

  

    for (int i = 2;i<= sht.getLastRowNum(); i++)
    {

    Row r = sht.getRow(i);

    //取出这一行这一列的值

    String stringCellValue = r.getCell(1).getStringCellValue();

        String stringCellValue2 = r.getCell(2).getStringCellValue();

    。。。。。。。

    }

  }

}

 

注意解决碰到的某些问题

1.空指针问题:    

Cell cell = r.getCell(j);
  if (cell == null) {
  r.createCell(j);
 }

2数据类型问题(j为第几列)

  r.getCell(j).setCellType(Cell.CELL_TYPE_STRING);

 

over:希望对你有帮助!!有问题可以随时与我沟通我们一起学习。加油骚年!

 

java导入excel,多sheet

原文:https://www.cnblogs.com/liglacier/p/13609150.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!