java excel解析视频教程_java解析Excel(xls、xlsx两种格式)
一、需要导入的jar
1.commons-collections4-4.1.jar
2.poi-3.17-beta1.jar
3.poi-ooxml-3.17-beta1.jar
4.poi-ooxml-schemas-3.17-beta1.jar
5.xmlbeans-2.6.0.jar
二、主要API,了解springcloud架构可以加求求:三五三六二四七二五九
1.import org.apache.poi.ss.usermodel.Workbook,对应Excel文档;
2.import org.apache.poi.hssf.usermodel.HSSFWorkbook,对应xls格式的Excel文档;
3.import org.apache.poi.xssf.usermodel.XSSFWorkbook,对应xlsx格式的Excel文档;
4.import org.apache.poi.ss.usermodel.Sheet,对应Excel文档中的一个sheet;
5.import org.apache.poi.ss.usermodel.Row,对应一个sheet中的一行;
6.import org.apache.poi.ss.usermodel.Cell,对应一个单元格。
三、代码如下package poi;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
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 Testpoi {
public static void main(String[] args) {
Workbook wb =null;
Sheet sheet = null;
Row row = null;
List> list = null;
String cellData = null;
String filePath = "D:\\test.xlsx";
String columns[] = {"name","age","score"};
wb = readExcel(filePath);
if(wb != null){
//用来存放表中数据
list = new ArrayList>();
//获取第一个sheet
sheet = wb.getSheetAt(0);
//获取最大行数
int rownum = sheet.getPhysicalNumberOfRows();
//获取第一行
row = sheet.getRow(0);
//获取最大列数
int colnum = row.getPhysicalNumberOfCells();
for (int i = 1; i
Map map = new LinkedHashMap();
row = sheet.getRow(i);
if(row !=null){
for (int j=0;j
cellData = (String) getCellFormatValue(row.getCell(j));
map.put(columns[j], cellData);
}
}else{
break;
}
list.add(map);
}
}
//遍历解析出来的list
for (Map map : list) {
for (Entry entry : map.entrySet()) {
System.out.print(entry.getKey()+":"+entry.getValue()+",");
}
System.out.println();
}
}
//读取excel
public static Workbook readExcel(String filePath){
Workbook wb = null;
if(filePath==null){
return null;
}
String extString = filePath.substring(filePath.lastIndexOf("."));
InputStream is = null;
try {
is = new FileInputStream(filePath);
if(".xls".equals(extString)){
return wb = new HSSFWorkbook(is);
}else if(".xlsx".equals(extString)){
return wb = new XSSFWorkbook(is);
}else{
return wb = null;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return wb;
}
public static Object getCellFormatValue(Cell cell){
Object cellValue = null;
if(cell!=null){
//判断cell类型
switch(cell.getCellType()){
case Cell.CELL_TYPE_NUMERIC:{
cellValue = String.valueOf(cell.getNumericCellValue());
break;
}
case Cell.CELL_TYPE_FORMULA:{
//判断cell是否为日期格式
if(DateUtil.isCellDateFormatted(cell)){
//转换为日期格式YYYY-mm-dd
cellValue = cell.getDateCellValue();
}else{
//数字
cellValue = String.valueOf(cell.getNumericCellValue());
}
break;
}
case Cell.CELL_TYPE_STRING:{
cellValue = cell.getRichStringCellValue().getString();
break;
}
default:
cellValue = "";
}
}else{
cellValue = "";
}
return cellValue;
}
}
四、运行结果
代码运行前保证在D盘下有一个test.xlsx文档,不然报文件找不到异常;Excel文档中的表头要和代码中的String columns[] = {"name","age","score"}对应起来。
java excel解析视频教程_java解析Excel(xls、xlsx两种格式)相关推荐
- java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)
Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...
- Java 解析Excel(xls、xlsx两种格式)
Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...
- Java使用poi导出数据到excel(包括xls和xlsx两种格式)并通过浏览器下载
情景:将数据导出到excel是java开发常用的功能,数据量不大的时候,xls和xlsx两种格式的文件都行,但是数据量太大的时候就有区别了,xls格式的文件一个sheet页最多只能存六万多条数据,而x ...
- Python 不改变Excel单元格样式—xls和xlsx两种格式
因为xls和xlsx两种格式,xlsx是被加密了传统的方式读取修改不了 下面是xls格式读取修改 # -*- coding: utf-8 -*-# # ------------------------ ...
- java swing事件机制_java SWing事件调用的两种机制
/** * java swing中事件调用的两种机制: * (一)响应机制 * (二)回调机制 */ package test; import java.awt.*; import java.awt. ...
- java hashmap遍历顺序_Java中HashMap遍历的两种方式
第一种: Map map = HashMap(); Iterator iter = map.entrySet().iterator(); (iter.hasNext()) { Map.Entry e ...
- excel 解析 java_java解析Excel(xls、xlsx两种格式)
https://www.cnblogs.com/hhhshct/p/7255915.html ***************************************************** ...
- java获取文件后缀_Java获取文件后缀的两种方式
在对文件进行操作的时候,我们经常需要用到文件的后缀.但是Java API中并没有提供获取文件后缀的方法.下面的工具方法可以帮助我们实现这个目的. 方法1 代码示例: package org.4spac ...
- java 图片 白边_java 去除图片白边 两种方法的比较
swt 下的图片处理: ImageData ideaImageData = new ImageData(path); ideaImageData = getWhite(ideaImageData); ...
最新文章
- JAVA 静态变量与静态方法
- bat no moudle named xxx
- RIS镜像中添加网卡和RAID卡驱动方法及实践经验总结
- matlab波的极化特性,Matlab GUI在电磁波极化特性教学中的应用
- K8S configmap详解:从文件创建、从文件夹创建及以volume、env环境变量的方式在pod中使用
- rundll32的使用和使用c#调用dll
- 【华为云技术分享】《跟唐老师学习云网络》 - Veth网线
- EXP-00056遇到Oracle错误1455问题解决办法
- 一些关于java的笔记
- mysql 优化 整体思路
- 车型代号对照表_宝马内部代号对应车型解读,绝密!
- python网页登录验证码_15.Python实现识别登录验证码(入门)
- 百人计划(图形部分)Bump Mapping(凹凸贴图映射技术)
- 魔方——一面两层之后的公式
- 华为网络设备与基础配置
- android开机加速器,安卓手机开机如何加速
- 看不到同一个网络下的其他计算机,看不到局域网其他计算机怎么办
- C语言哈夫曼编码压缩解压
- AI美颜SDK功能算法代码解析
- word-spacing无效
热门文章
- 注册窗口类 registerclass
- 远程控制漏洞CNVD-2022-10270/CNVD-2022-03672 向日葵RCE复现与解决
- python3 join函数_Python3 join函数和os.path.join用法详解
- java类向拦截器传值_MyBatis拦截器:给参数对象属性赋值的实例
- python中什么是实例-在Python中使用’__rsub__’方法的典型实例是什么?
- .net函数查询_特来电智能分析平台动态查询架构创新实践
- 学生电脑哪个牌子好_常亮补光灯哪个牌子好服务至上
- Android开发之Java基础JVM和ClassLoader以及类加机制面试题
- 让线程等待10秒_把python程序变成多线程
- QXTEND QUERY SERVICE调试成功