博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用poi读取excel数据示例
阅读量:4882 次
发布时间:2019-06-11

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

使用poi读取excel数据示例

分两种情况:

  一种读取指定单元格的值

  另一种是读取整行的值

 

依赖包:

org.apache.poi
poi
3.15

代码示例:

public String getCellFromExcel(String path, String row, String col) throws Exception {        return getCellFromExcel(path, 0, Integer.valueOf(row), Integer.valueOf(col));    }    public String getRowFromExcel(String path, String row) throws Exception {        return getRowFromExcel(path, 0, Integer.valueOf(row));    }    public String getRowFromExcel(String path, int sheet, int row) throws Exception {        File xlsx = new File(path);        Workbook workbook = WorkbookFactory.create(xlsx);        Sheet sheet1 = workbook.getSheetAt(sheet);        Row row1 = sheet1.getRow(row);        List
list = new ArrayList<>(); int rowNum = row1.getLastCellNum(); for (int i = 0; i < rowNum; i++) { list.add(getCellValueByCell(row1.getCell(i))); } logger.info("文件名:{},sheet:{},row:{},取值:{}", path, sheet, row, list.toString()); return list.toString(); } public String getCellFromExcel(String path, int sheet, int row, int col) throws Exception { File xlsx = new File(path); Workbook workbook = WorkbookFactory.create(xlsx); Sheet sheet1 = workbook.getSheetAt(sheet); Row row1 = sheet1.getRow(row); String cell = getCellValueByCell(row1.getCell(col)); logger.info("文件名:{},sheet:{},row:{},col:{},取值:{}", path, sheet, row, col, cell); return cell; } //获取单元格各类型值,返回字符串类型 private static String getCellValueByCell(Cell cell) { //判断是否为null或空串 if (cell == null || cell.toString().trim().equals("")) { return ""; } String cellValue = ""; int cellType = cell.getCellType(); // 以下是判断数据的类型 switch (cellType) { case HSSFCell.CELL_TYPE_NUMERIC: // 数字 if (0 == cell.getCellType()) {
//判断单元格的类型是否则NUMERIC类型 if (HSSFDateUtil.isCellDateFormatted(cell)) {
// 判断是否为日期类型 Date date = cell.getDateCellValue(); DateFormat formater = new SimpleDateFormat( "yyyy-MM-dd HH:mm"); cellValue = formater.format(date); } else { cellValue = cell.getNumericCellValue() + ""; } } break; case HSSFCell.CELL_TYPE_STRING: // 字符串 cellValue = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean cellValue = cell.getBooleanCellValue() + ""; break; case HSSFCell.CELL_TYPE_FORMULA: // 公式 cellValue = cell.getCellFormula() + ""; break; case HSSFCell.CELL_TYPE_BLANK: // 空值 cellValue = ""; break; case HSSFCell.CELL_TYPE_ERROR: // 故障 cellValue = "非法字符"; break; default: cellValue = "未知类型"; break; } return cellValue; }

 

转载于:https://www.cnblogs.com/gongxr/p/10935881.html

你可能感兴趣的文章
【poj1013】 Counterfeit Dollar
查看>>
Centos7 安装配置Apache+Mysql5.7+PHP7.0+phpmyadmin
查看>>
最佳调度问题
查看>>
10.04 FZSZ模拟Day1 总结
查看>>
RabbitMQ学习以及与Spring的集成(二)
查看>>
Go语言数据类型
查看>>
ora-12899解决方法
查看>>
(8)关于flexbox的一些想法。
查看>>
一台机子同时启动两个相同版本的tomcat
查看>>
剑指offer——python【第29题】最小的K个数
查看>>
带你入门代理模式/SpringAop的运行机制
查看>>
eclipse对离线python的环境搭建
查看>>
OpenCV imshow无法显示图片
查看>>
js线程&定时器
查看>>
java.lang.IllegalStateException: getOutputStream() has already been cal
查看>>
Ubuntu下搜狗输入法乱码
查看>>
计算机网络●通信协议
查看>>
在EditPlus里配置编译和运行java代码的方法
查看>>
gson所需jar包
查看>>
最干净的pyinstaller打包成exe应用程序方法
查看>>