Java使用POI导入Excel文件,操作起来比较简单,支持xlsx格式。

下载POI资源包

从官网https://poi.apache.org/下载POI,笔者选择的是版本是3.17,下载后文件名是poi-bin-3.17.zip。起初担心版本太新,和现有项目不兼容,后来程序跑起来没发现什么问题。

将poi-3.17下的jar包和poi-3.17\lib\*.jar包都复制到项目的WEB-INF\lib下,并在项目配置编译路径。

在Java文件中添加以下引用,其中hssf用于xls格式,xssf用于xlsx格式。

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.ss.usermodel.DataFormatter;
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;

读取Excel文件

HSSFWorkbook workbook = null;
try {
// 读取Excel文件
InputStream inputStream = new FileInputStream('c:\test.xlsx');
workbook = new HSSFWorkbook(inputStream);
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}

遍历Excel Sheet表

// 遍历Excel Sheet
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
workbook.getSheetAt(numSheet);
}

遍历行

HSSFSheet sheet = workbook.getSheetAt(0);
if (sheet != null) {
// 循环行
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
HSSFRow row = sheet.getRow(rowNum);
if (row == null) {
continue;// 忽略并继续读取
}
HSSFCell cell = row.getCell(0);
if (cell == null) {
continue;
}
//System.out.println('cell.getStringCellValue0():' + cell.getStringCellValue());
cell = row.getCell(1);
if (cell == null) {
continue;
}
//System.out.println('cell.getStringCellValue1():' + cell.getStringCellValue());
}
}

POI遇到问题Cannot get a text value from a numeric cell “Poi”

导入Excel文件时,如果某列是数值类型,直接通过cell.getStringCellValue()会报Cannot get a text value from a numeric cell “Poi”错误。

解决办法

DataFormatter formatter = new DataFormatter();
String val = formatter.formatCellValue(sheet.getRow(col).getCell(row));

java如何导入Excel文件的更多相关文章

  1. Java解析导入Excel文件后台代码实现

    使用MultipartFile上传Excel文件后端代码实现:(springmvc下的spring-webmvc (MultipartFile )上传) 由于POST一个包含文件上传的Form会以mu ...

  2. Java POI导入Excel文件

    今天在公司需要做个导入Excel文件的功能,所以研究了一下,参考网上的一些资料总算是做出来了,在此记录一下防止以后忘记怎么弄. 本人用的是poi3.8,所以需要的JAR包如下: poi-3.8.jar ...

  3. Java实现导入Excel文件

    一.配置文件名称.路径.内容: <bean id="multipartResolver" class="org.springframework.web.multip ...

  4. Java jxl导入excel文件,导入的数字、身份证号码、手机号变成了科学计数法,解决方案

    原文出自:https://blog.csdn.net/seesun2012 这是一个execl文件导入数据库操作,使用jxl解析execl导入数据库过程出现了科学计数法,与想要导入的数据不匹配,以下是 ...

  5. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  6. java后端导入excel模板和导入excel文件去读数据

    模板转载地址:https://www.cnblogs.com/zhangyangtao/p/9802948.html 直接上代码(我是基于ssm写的demo,导入文件目前只能读取.xls后缀的exce ...

  7. springMVC(5)---导入excel文件数据到数据库

    springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...

  8. 利用kettle组件导入excel文件到数据库

    利用kettle组件导入excel文件到数据库 1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...

  9. java上传excel文件及解析

      java上传excel文件及解析 CreateTime--2018年3月5日16:25:14 Author:Marydon 一.准备工作 1.1 文件上传插件:swfupload: 1.2 文件上 ...

随机推荐

  1. c# 创建缩略图

    /// <summary> /// 创建缩略图 /// </summary> /// <param name="srcFileName">< ...

  2. 【PHP】Composer使用简介,composer install 和 update 区别

    1.composer是php的依赖包管理工具 2.符合PSR-0/1/2/3/4 规范 3.composer安装推荐使用国内镜像 4.composer require/install/update 区 ...

  3. glib-2.40编译安装

    1 安装glib库所需要的依赖库: libffi-.tar.gz glib-.tar.xz 安装依赖库libffi: tar xf libffi-.tar.gz cd libffi- ./config ...

  4. 7.30实习培训日志-SQL优化

    总结 今天早上考试,下午主要是老师引导我们学习SQL优化,晚上主要是同学的技术分享,杨松柏同学主要给我们分享了java的io的一些东西,c10k问题,bio(同步阻塞IO),NIO(同步非阻塞IO), ...

  5. Unity 点乘与叉乘 计算敌人位置

    点乘:表示两个向量夹角 a*b=|a| * |b| * cos(ab),判断敌人在前后方 叉乘:表示两向量的法线

  6. qemu-nbd使用教程

    服务端 服务器环境 已经安装过qemu-img的32位ubuntu ubuntu@ubuntu-virtual-machine:~/laboratory$ uname -a Linux ubuntu- ...

  7. Java面向对象的三大特性 多态

    多态 对象的多种形态 继承是实现多态的基础 1,引用多态    父类的引用可以指向本类的对象    父类的引用可以指向子类的对象 2,方法多态    创建本类对象时,调用的方法为本类方法    创建子 ...

  8. Java: 面向对象程序设计(上)

    1. 类 类主要包含3个部分: 类属性:用来描述类本身所抽象出的事物的属性 类方法:用来描述这个被抽象出的事物可以做什么 构造方法:每个类都至少会有一个特殊的方法,该方法提供了创建类对象的初始化机制 ...

  9. UIScrollView嵌套滑动手势冲突的简易实现

    明确需求 现在有较多的商城类app有如下需求,界面上带有headerView,并且有一个barView可悬停,最下方为多个可左右滑动的tableView,具体可参考下图 另类实现 在网上关于此类需求的 ...

  10. 因为.patch_storage目录丢失,导致opatch打补丁失败

    一套新装的ORACLE Restart环境(11.2.0.3.0),计划最新的PSU,在使用opath auto方式安装补丁时报错,表面上的错误信息提示opatch工具不满足版本要求: [root@d ...