【Java进阶营】java 读取 excel 表格内容
一、添加依赖
org.apache.poi
poi
3.8
org.apache.poi
poi-ooxml
3.8
二、工具类
根据文件后缀判断 2003 || 2007 || 2010 格式。
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.InputStream;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;
public class ExcelUtils {
private static Workbook wb;
private static Sheet sheet;
private static Row row;
private static final String EXCEL_XLS = “xls”;
private static final String EXCEL_XLSX = “xlsx”;
/**
读取表头
@param inputStream 文件
@return List 返回list
*/
public static Map<Integer, String> readExcelTitle(InputStream inputStream, String suffix) {
getWorkbook(inputStream, suffix);
sheet = wb.getSheetAt(0);
row = sheet.getRow(0);
// 标题总列数
int colNum = row.getPhysicalNumberOfCells();
Map<Integer, String> map = new HashMap<>();
for (int i = 0; i < colNum; i++) {
map.put(i, row.getCell(i).getStringCellValue());
}
return map;
}
/**
读取excel内容
@param inputStream 文件
@return Map<行, Map < 下标, Object>>
*/
public static Map<Integer, Map<Integer, String>> readExcelContent(InputStream inputStream, String suffix) {
getWorkbook(inputStream, suffix);
Map<Integer, Map<Integer, String>> content = new HashMap<>();
sheet = wb.getSheetAt(0);
// 得到总行数
int rowNum = sheet.getLastRowNum();
row = sheet.getRow(0);
int colNum = row.getPhysicalNumberOfCells();
// 正文内容应该从第二行开始,第一行为表头的标题
for (int i = 1; i <= rowNum; i++) {
row = sheet.getRow(i);
int j = 0;
Map<Integer, String> cellValue = new HashMap<>();
while (j < colNum) {
String obj = getCellFormatValue(row.getCell(j));
cellValue.put(j, obj);
j++;
}
content.put(i, cellValue);
}
return content;
}
private static String getCellFormatValue(Cell cell) {
String cellValue = “”;
if (cell != null) {
// 判断当前Cell的Type
switch (cell.getCellType()) {
// 如果当前Cell的Type为NUMERIC
case Cell.CELL_TYPE_NUMERIC:
case Cell.CELL_TYPE_FORMULA: {
// 判断当前的cell是否为Date
if (DateUtil.isCellDateFormatted(cell)) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(“YYYY-MM-dd HH:mm:ss”);
Instant instant = cell.getDateCellValue().toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zoneId);
cellValue = dateTimeFormatter.format(localDateTime);
} else {
// 如果是纯数字
// 取得当前Cell的数值
cellValue = String.valueOf(cell.getNumericCellValue());
}
break;
}
// 如果当前Cell的Type为STRING
case Cell.CELL_TYPE_STRING:
// 取得当前的Cell字符串
cellValue = cell.getRichStringCellValue().getString();
break;
default:
// 默认的Cell值
cellValue = “”;
}
}
return cellValue;
}
private static void getWorkbook(InputStream inputStream, String suffix) {
try {
//2003
if (EXCEL_XLS.equals(suffix)) {
wb = new HSSFWorkbook(inputStream);
//2007/2010
} else if (EXCEL_XLSX.equals(suffix)) {
wb = new XSSFWorkbook(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
感谢你耐心看完了文章…
【Java进阶营】java 读取 excel 表格内容相关推荐
- java 批量读取excel表格内容_java 使用POI批量导入excel数据
一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...
- java 读取 Excel表格内容
读写Excel,这么重要且普遍的问题,伟大的apache,早就为我们封装好了jar包,供我们使用了.无需我们再造轮子. 第一步:添加jar包依赖 <!--读取 excel 的所需jar包--&g ...
- java excel 读取表头_java 读取 excel 表格内容
一.添加依赖 org.apache.poi poi 3.8 org.apache.poi poi-ooxml 3.8 1 2 3 4 5 6 7 8 9 10 二.工具类 根据文件后缀判断 2003 ...
- 读取Excel表格内容转为Sql when then语句
说明 今天测试预上线库时需要改表,先备份列Excel表格. 后发现有问题,需要还原某些数据,但是不是sql文件也不是sql语句. 这里是吧所有user_id 改为了-1,需要还原. 思路就是按照sql ...
- python读取excel表格内容
基本概念: 盖楼房(安装python) 创建厨房(python虚拟环境) 购买锅碗瓢盆(安装各种库,各种工具) 干活做饭(处理execel表格) 1.安装Python 3 (建好一栋楼): 这个步骤具 ...
- java利用poi生成/读取excel表格
1.引入jar包依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</ ...
- java用easyexcel实现读取excell表格内容
引入依赖 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency><gr ...
- 读取excel表格内容,并写入到word文档中
import pandas as pd import docx from docx.shared import RGBColor ''' 该代码段适合,将excel题库转换成word格式的题库,写入的 ...
- PHP读取excel表格内容 PHP-ExcelReader
PHP-ExcelReader http://sourceforge.net/projects/phpexcelreader/files/latest/download
最新文章
- 游戏关卡中的类型运用:《LOOP》的无限可能
- mysql 传统数据恢复_mysql 数据恢复实例
- 【待解答】文件目录可以利用foreach边遍历边删除操作,为什么?
- java 复制字段_java - 在构造函数中按字段复制字段 - 我需要一个更简洁的形式 - SO中文参考 - www.soinside.com...
- 辩论计算机未来不能取代书本的问题,电脑不能取代书本辩论会材料.doc
- 量子计算机 时间倒流,科学家首次利用量子计算机成功逆转时间,时间倒流将变成可能?...
- 一盒两用!——破解电信IPTV机顶盒为普通安卓机顶盒
- 我收集的CS地图mod制作网址
- 关于I2C调试过程中遇到的一些细节性的问题(包括定位Master read-->Slaver send不成功的问题)
- 女子学电子计算机哪一项专业好,2018最适合女生的高考热门专业有哪些
- iOS LBS地图服务--高德地图使用大全
- win7安装JAVA程序闪退怎么办_win7打开软件闪退如何解决
- Android相机开发: 触摸对焦,触摸测光,二指手势缩放
- c语言在打开文件时会使用到的函数,C语言打开文件操作
- 浏览器打开一个网站可能经历哪些步骤
- DCMM数据管理能力成熟度评估模型
- 学pyqt5之前需要学python吗_【第一节】PyQt5简介
- Ruby的大冒险(2D游戏精品辅导课)----李大数解读
- 马云亲口确认明年退休:转型当老师,张勇将接任
- Qt5 QMediaPlayer 音乐播放器