Java 中POI 导入EXCEL2003 和EXCEL2007的实现方法
发布时间 - 2026-01-11 03:10:20 点击率:次Java 中POI 导入EXCEL2003 和EXCEL2007的实现方法

实现代码:
import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.POIXMLException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
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.poifs.filesystem.OfficeXmlFileException;
import org.apache.poi.ss.usermodel.Cell;
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 导入功能
* @author lyq 20150312
* @version 1.0
*/
public class ExcelUtils {
public List<Object[]> importExcel(String filePath) throws Exception{
List<Object[]> list=new ArrayList<Object[]>();
String fileType=filePath.substring(filePath.lastIndexOf(".")+1);
try {
if("xls".equalsIgnoreCase(fileType)){
list= importExcel03(filePath);
}else{
list= importExcel07(filePath);
}
} catch(OfficeXmlFileException e){//通过手动修改文件名 引起的异常 比如 3.xlsx 重命名 3.xls 其实际文件类型为xlsx
list=importExcel07(filePath);
} catch(POIXMLException e){//通过手动修改文件名 引起的异常 比如 3.xls 重命名 3.xlsx 其实际文件类型为xls
list=importExcel03(filePath);
}
return list;
}
public List<Object[]> importExcel03(String filePath) throws IOException{
FileInputStream in=new FileInputStream(filePath);
List<Object[]> list=new ArrayList<Object[]>();
HSSFWorkbook wb=new HSSFWorkbook(in);
HSSFSheet sheet = wb.getSheetAt(0);
int rows = sheet.getPhysicalNumberOfRows();
HSSFRow row=sheet.getRow(0);
int cells=row.getLastCellNum();
Object[] csr=null;
for(int i=1;i<rows;i++){
row=sheet.getRow(i);
csr=new String[cells];
for(int j=0;j<cells;j++){
HSSFCell cell=row.getCell(j);
Object obj=null;
if(cell!=null){
obj=getValue(cell);
}
csr[j]=obj;
}
list.add(csr);
}
if(in!=null)in.close();
return list;
}
public List<Object[]> importExcel07(String filePath) throws IOException{
List<Object[]> list=new ArrayList<Object[]>();
FileInputStream in=new FileInputStream(filePath);
XSSFWorkbook wb=new XSSFWorkbook(in);
XSSFSheet sheet = wb.getSheetAt(0);
int rows = sheet.getPhysicalNumberOfRows();
XSSFRow row=sheet.getRow(0);
int cells=row.getLastCellNum();
Object[] csr=null;
for(int i=1;i<rows;i++){
row=sheet.getRow(i);
csr=new String[cells];
for(int j=0;j<cells;j++){
XSSFCell cell=row.getCell(j);
Object obj=null;
if(cell!=null){
obj=getValue(cell);
}
csr[j]=obj;
}
list.add(csr);
}
if(in!=null)in.close();
return list;
}
@SuppressWarnings("static-access")
public String getValue(Cell cell){
int type=cell.getCellType();
String s="";
if(type==cell.CELL_TYPE_NUMERIC){
if(HSSFDateUtil.isCellDateFormatted(cell)){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
s=sdf.format(cell.getDateCellValue());
}else {
BigDecimal db = new BigDecimal(cell.getNumericCellValue());
s=String.valueOf(db);
}
}else if(type==cell.CELL_TYPE_STRING){
s=cell.getStringCellValue();
}else if(type==cell.CELL_TYPE_BOOLEAN){
s=cell.getBooleanCellValue()+"";
}else if(type==cell.CELL_TYPE_FORMULA){
s=cell.getCellFormula();
}else if(type==cell.CELL_TYPE_BLANK){
s=" ";
}else if(type==cell.CELL_TYPE_ERROR){
s=" ";
}else{
}
return s.trim();
}
/**
* @param args
*/
public static void main(String[] args) {
ExcelUtils ex=new ExcelUtils();
try {
List<Object[]> list=ex.importExcel("D:\\3.xls");
for(Object[] ss:list){
for(Object s:ss){
System.out.print(s+"\t");
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意:
jdk使用版本(影响excel07)
所使用的核心jar如下
poi-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
poi-ooxml-schemas-3.8-20120326.jar
xmlbeans-2.3.0.jar
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java
# 中POI
# 导入EXCEL2003
# 和EXCEL2007
# POI的使用方法
# java 中 poi解析Excel文件版本问题解决办法
# java使用POI批量导入excel数据的方法
# java使用POI操作excel文件
# Java使用poi将word转换为html
# JAVA使用POI获取Excel的列数与行数
# java的poi技术读取和导入Excel实例
# 重命名
# 如有
# 希望能
# 谢谢大家
# 疑问请
# version
# lyq
# lt
# Object
# public
# ExcelUtils
# XSSFCell
# XSSFRow
# Cell
# xssf
# excel
# author
# XSSFSheet
# XSSFWorkbook
# gt
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
lovemo网页版地址 lovemo官网手机登录
如何快速生成凡客建站的专业级图册?
Laravel如何自定义分页视图?(Pagination示例)
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
如何在阿里云完成域名注册与建站?
中山网站推广排名,中山信息港登录入口?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
制作企业网站建设方案,怎样建设一个公司网站?
如何快速搭建FTP站点实现文件共享?
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
动图在线制作网站有哪些,滑动动图图集怎么做?
Laravel怎么实现模型属性的自动加密
高防服务器租用首荐平台,企业级优惠套餐快速部署
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
网站图片在线制作软件,怎么在图片上做链接?
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
中国移动官方网站首页入口 中国移动官网网页登录
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何在IIS7上新建站点并设置安全权限?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
浅谈javascript alert和confirm的美化
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Python文件异常处理策略_健壮性说明【指导】
javascript中的try catch异常捕获机制用法分析
Linux后台任务运行方法_nohup与&使用技巧【技巧】
Laravel如何配置和使用缓存?(Redis代码示例)
Python3.6正式版新特性预览
PHP正则匹配日期和时间(时间戳转换)的实例代码
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
JS去除重复并统计数量的实现方法
如何解决hover在ie6中的兼容性问题
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
Laravel Docker环境搭建教程_Laravel Sail使用指南
iOS中将个别页面强制横屏其他页面竖屏
电商网站制作价格怎么算,网上拍卖流程以及规则?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
Laravel如何使用.env文件管理环境变量?(最佳实践)
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
如何快速搭建高效WAP手机网站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局

