博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Excel文件导入到HashMap HSSFWorkbook(xls)和 XSSFWorkbook (xlsx)
阅读量:4090 次
发布时间:2019-05-25

本文共 3180 字,大约阅读时间需要 10 分钟。

参考链接

package com.blue.pem.client.util;import java.io.File;import java.io.FileInputStream;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ObjectExcelRead {    /**     * @param filepath //文件路径     * @param filename //文件名     * @param startrow //开始行号     * @param startcol //开始列号     * @param sheetnum //sheet     * @return list     */        /*读取xls文件*/    public static List
> parse(HSSFWorkbook wb) { List
> listMap = new ArrayList
>(); List
keyList = new ArrayList(); try { HSSFSheet sheet = wb.getSheetAt(0); int rowNum = sheet.getLastRowNum(); for (int i = 0; i < rowNum; i++) if (i == 0) { HSSFRow row = sheet.getRow(i); int cellNum = row.getLastCellNum(); for (int j = 0; j < cellNum; j++) { Object obj = getCellValue(row.getCell(j)); keyList.add(obj); } } else { HSSFRow row = sheet.getRow(i); if (checkRowNull(row) != 10) { Map
map = new HashMap
(); int cellNum = row.getLastCellNum(); for (int j = 0; j < cellNum; j++) { Object obj = getCellValue(row.getCell(j)); map.put(keyList.get(j), obj); } listMap.add(map); } } return listMap; } catch (Exception e) { e.printStackTrace(); }return listMap; } //读取xlsx数据 public static List
> parse(XSSFWorkbook wb) { List
> listMap = new ArrayList
>(); List
keyList = new ArrayList(); try { XSSFSheet sheet= wb.getSheetAt(0); int rowNum = sheet.getLastRowNum(); for (int i = 0; i < rowNum; i++) if (i == 0) { XSSFRow row = sheet.getRow(i); int cellNum = row.getLastCellNum(); for (int j = 0; j < cellNum; j++) { Object obj = getCellValue(row.getCell(j)); keyList.add(obj); } } else { XSSFRow row = sheet.getRow(i); if (checkRowNull(row) != 10) { Map
map = new HashMap
(); int cellNum = row.getLastCellNum(); for (int j = 0; j < cellNum; j++) { Object obj = getCellValue(row.getCell(j)); map.put(keyList.get(j), obj); } listMap.add(map); } } return listMap; } catch (Exception e) { e.printStackTrace(); }return listMap; } public static int checkRowNull(HSSFRow row) { int num = 0; Iterator
iterator = row.iterator(); while (iterator.hasNext()) { Cell cell = (Cell)iterator.next(); if ((cell == null) || (cell.getCellType() == 3)) { num++; } } return num; } public static int checkRowNull(XSSFRow row) { int num = 0; Iterator
iterator = row.iterator(); while (iterator.hasNext()) { Cell cell = (Cell)iterator.next(); if ((cell == null) || (cell.getCellType() == 3)) { num++; } } return num; }public static Object getCellValue(Cell cell) { if ((cell == null) || (cell.getCellType() == 3)) { return null; } Object obj = null; switch (cell.getCellType()) { case 1: obj = cell.getStringCellValue(); break; case 0: obj = Double.valueOf(cell.getNumericCellValue()); break; case 2: obj = cell.getCellFormula(); break; case 4: obj = Boolean.valueOf(cell.getBooleanCellValue()); break; case 3: } return obj; }

 

转载地址:http://tzcii.baihongyu.com/

你可能感兴趣的文章
缓存篇-Redis缓存失效以及解决方案
查看>>
缓存篇-使用Redis进行分布式锁应用
查看>>
缓存篇-Redisson的使用
查看>>
phpquery抓取网站内容简单介绍
查看>>
找工作准备的方向(4月22日写的)
查看>>
关于fwrite写入文件后打开查看是乱码的问题
查看>>
用结构体指针前必须要用malloc,不然会出现段错误
查看>>
Linux系统中的美
查看>>
一些实战项目(linux应用层编程,多线程编程,网络编程)
查看>>
原来k8s docker是用go语言写的,和现在所讲的go是一个东西!
查看>>
STM32CubeMX 真的不要太好用
查看>>
STM32CubeMX介绍、下载与安装
查看>>
不要买铝合金机架的无人机,不耐摔,易变形弯曲。
查看>>
ACfly也是基于FreeRTOS的
查看>>
我发现七月在线的GAAS课程基本都讲到了
查看>>
电机堵转
查看>>
carzepony也在想往FreeRTOS上迁移
查看>>
可以买个好点的电烙铁
查看>>
ACfly调参记录(包括ACfly-F330和ACfly-T265)
查看>>
一定记得每飞几次或者隔一天要把螺丝和浆帽拧一次,确实会松的
查看>>