导入导出excel

整个世界 2019-04-20 12:57:14
/** * 导入excel * @param path * @return */ public static List<List<Object>> ReadExcelData(String path){ //找到需要解析的文件 File file=new File(path); try { //创建解析对象:传入输入流 HSSFWorkbook workbook=new HSSFWorkbook(FileUtils.openInputStream(file)); //指定要读取的Sheet页页码 HSSFSheet sheet=workbook.getSheetAt(0); //设置要读取的第二行和最后一行的行号 int firstRowNum=0; int lastRowNum=sheet.getLastRowNum(); List<List<Object>>rowLists=new ArrayList<List<Object>>(); //循环读取每一行 for(int i=firstRowNum;i<=lastRowNum;i++){ //获取当前读取的行 HSSFRow row=sheet.getRow(i); //获取当前行最后的列号 int lastCellNum=row.getLastCellNum(); //System.out.println(lastCellNum); List<Object>list=new ArrayList<Object>(); //遍历每一列 for(int j=0;j<lastCellNum;j++){ //获取每个单元格 HSSFCell cell=row.getCell(j); //获取每个单元格的数据类型 int cellType=cell.getCellType(); Object value=null; //根据不同类型获取不同类型的值 switch (cellType) { case HSSFCell.CELL_TYPE_NUMERIC://数值 //数值中又分时间类型和数字类型 //如果时间类型格式的单元格则,按照时间格式取值,否则按照指定格式的数字类型取值 if (HSSFDateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); value = DateFormatUtils.format(date, "yyyy-MM-dd"); list.add(value); } else { value = cell.getNumericCellValue(); DecimalFormat df = new DecimalFormat("0"); value = df.format(value); list.add(value); } //输出每个单元格的内容 // System.out.print(value+","); break; case HSSFCell.CELL_TYPE_STRING://字符串 value=cell.getStringCellValue(); list.add(value); //输出每个单元格的内容 //System.out.print(value+","); break; } } rowLists.add(list); } //System.out.println(rowLists.size()); //System.out.println(Arrays.toString(rowLists.get(7).toArray())); return rowLists; } catch (IOException e) { e.printStackTrace(); } return null; }
...全文
15 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧