本ExcelUtils工具类是用poi写的,仅用于线下从excel文件中读取数据。如果生产环境要用的话,建议切换到阿里的easyexcel。

引入poi.jar:

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.1</version>
</dependency>

ExcelUtils:

import java.io.FileInputStream;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelUtils {
    public static void readExcel(String sourceFilePath) {
        Workbook workbook = null;
        StringBuilder sb = new StringBuilder();
        try {
            workbook = getReadWorkBookType(sourceFilePath);
            //获取第一个sheet
            Sheet sheet = workbook.getSheetAt(0);
            //第一行是表头,从第二行开始读取
            for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
                Row row = sheet.getRow(rowNum);
                Cell cell = row.getCell(0);
                sb.append(getCellStringVal(cell).trim());
            }
        } finally {
            IOUtils.closeQuietly(workbook);
        }
        System.out.println(sb.toString());
    }

    private static String getCellStringVal(Cell cell) {
        CellType cellType = cell.getCellTypeEnum();
        switch (cellType) {
            case NUMERIC:
                return cell.getStringCellValue();
            case STRING:
                return cell.getStringCellValue();
            case BOOLEAN:
                return String.valueOf(cell.getBooleanCellValue());
            case FORMULA:
                return cell.getCellFormula();
            case BLANK:
                return "";
            case ERROR:
                return String.valueOf(cell.getErrorCellValue());
            default:
                return StringUtils.EMPTY;
        }
    }

    private static Workbook getReadWorkBookType(String filePath) {
        FileInputStream is = null;
        try {
            is = new FileInputStream(filePath);
            if (filePath.toLowerCase().endsWith("xlsx")) {
                return new XSSFWorkbook(is);
            } else {
                return new HSSFWorkbook(is);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            IOUtils.closeQuietly(is);
        }
        return null;
    }

    public static void main(String[] args) {
        readExcel("/Users/koushengrui/Desktop/ksPhotoId.xlsx");
    }
}

最新文章

  1. JUnit笔记
  2. WPF CAL 计算器
  3. iOS-Xcode上传后iTunes Connect构建版本不显示
  4. Windows Storage Server 2008 R2 Standard(64位)之ASM(Automated Storage Manager)管理
  5. sqlserver 关于快照
  6. M - Escape - HDU 3605 - (缩点+最大流SAP)
  7. linux for 使用
  8. MySQL长短密码
  9. 搭建Hadoop集群(centos6.7+hadoop-2.7.3)
  10. git使用步骤_2017
  11. mongodb安装和运行
  12. slice.indices()/collections.Counter笔记
  13. python json (loads(),load(),jump(),jumps())
  14. Ubuntu16.04安装Mininet
  15. 在CentOS Linux下部署Activemq 5
  16. Java的JDK和JRE
  17. WEB入门三 CSS样式表基础
  18. git branch 误删 分支 找回
  19. Struts2学习笔记02 之 使用
  20. silverlight计时器

热门文章

  1. cocos creator 3D | 拇指投篮 | 3D项目入门实战
  2. SQL中前置0和后置0的处理问题
  3. olap和Oltp(转)
  4. 小记---------有关hadoop的HDFS命令行操作
  5. Hive Error : Java heap space 解决方案
  6. 重写移动端滚动条[iScroll.js核心代码]
  7. [Vue] vue的一些面试题4
  8. 11.AutoMapper 之值转换器(Value Transformers)
  9. Jquery复习(八)之遍历
  10. Fliter设置字符编码,解决中文问题