Java通过poi读取excel中文件
maven依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.12</version>
</dependency> <dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.12</version>
</dependency>
代码示例
package com.**.**.**.common.utils; 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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.io.*; /**
* @author zyydd
* @date 2019/3/15 15:00
*/
public class ExcelUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(ExcelUtils.class); public static void main(String[] args) {
String[][] rowArray = getArrayFromXLSX("D://test.xlsx", 0);
for (String[] row : rowArray) {
for (String cell : row) {
System.out.print(cell + "\t");
}
System.out.println();
}
} /**
* 获取xlsx文件内容某个sheet(从0开始)的内容,以二维数组形式返回
*
* @param fileAbsolutePath xlsx文件的绝对路径
* @return xlsx文件的文本内容
*/
public static String[][] getArrayFromXLSX(String fileAbsolutePath, int bookIndex) {
InputStream inputStream = null;
try {
inputStream = new FileInputStream(new File(fileAbsolutePath));
XSSFWorkbook book = new XSSFWorkbook(inputStream);
if (bookIndex >= book.getNumberOfSheets()) {
LOGGER.error("getArrayFromXLSX error: bookIndex={} is to large! ", bookIndex);
return null;
}
XSSFSheet sheet = book.getSheetAt(bookIndex);
int rowNum = sheet.getLastRowNum() + 1;
int coloumNum = sheet.getRow(0).getPhysicalNumberOfCells();
String[][] contents = new String[rowNum][coloumNum];
for (int j = 0; j < rowNum; j++) {
XSSFRow row = sheet.getRow(j);
if (row != null) {
for (int k = 0; k < row.getLastCellNum(); k++) {
contents[j][k] = getXCellFormatValue(row.getCell(k));
}
}
}
return contents;
} catch (FileNotFoundException fe) {
LOGGER.error("getArrayFromXLSX error: FileNotFoundException", fe);
} catch (IOException ie) {
LOGGER.error("getArrayFromXLSX error: IOException", ie);
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (Exception e) {
LOGGER.error("getArrayFromXLSX close Exception", e);
}
}
}
return null;
} private static String getXCellFormatValue(XSSFCell cell) {
String cellValue = "";
if (null != cell) {
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING:
cellValue = cell.getRichStringCellValue().getString();
break;
case XSSFCell.CELL_TYPE_NUMERIC:
cellValue = (new Double(cell.getNumericCellValue())).intValue() + "";
break;
default:
cellValue = " ";
}
} else {
cellValue = "";
}
return cellValue;
} }
excel数据(test.xlsx)
执行结果
Java通过poi读取excel中文件的更多相关文章
- java通过poi读取excel中的日期类型数据或自定义类型日期
Java 读取Excel表格日期类型数据的时候,读出来的是这样的 12-十月-2019,而Excel中输入的是 2019/10/12 或 2019-10-12 poi处理excel时,当excel没 ...
- JAVA使用POI读取EXCEL文件的简单model
一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...
- Java之POI读取Excel的Package should contain a content type part [M1.13]] with root cause异常问题解决
Java之POI读取Excel的Package should contain a content type part [M1.13]] with root cause异常问题解决 引言: 在Java中 ...
- java用poi读取Excel表格中的数据
Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版.Apache POI 代 ...
- Java实现POI读取Excel文件,兼容后缀名xls和xlsx
1.引入所需的jar包: maven管理项目的话直接添加以下坐标即可: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -- ...
- java利用poi读取excel异常问题
最近一个web工程需要完成一个小功能,利用文件上传然后读取文件内容写入到数据库,这里是操作的excel文件,excel文件分两种后缀,03版本的xls和之后的xlsx,现在大家一般都拿非常好用的插件直 ...
- java 使用POI读取excel数据
原文:http://doc.okbase.net/0201zcr/archive/161440.html 一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Ja ...
- java调用POI读取Excel
HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls:XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx: 1.注意点 getPhy ...
- Java利用POI读取Excel
官网直接下载POI http://poi.apache.org/ package com.CommonUtil; import java.io.File; import java.io.FileIn ...
随机推荐
- dotnet学习系列
这里整理下之前关于dotnet方面的文章索引. 一.dotnet core 系列 dotnet core 微服务教程 asp.net core 系列之并发冲突 asp.net core 系列之中间件进 ...
- SQL 增、删、改、查语句
1.SQL SELECT 语句 SELECT语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). SQL SELECT语法 SELECT 列名称 FROM 表名称 以及 SELECT * ...
- C# vb .NET读取识别条形码线性条码UPC-A
UPC-A是比较常见的条形码编码规则类型的一种.如何在C#,vb等.NET平台语言里实现快速准确读取该类型条形码呢?答案是使用SharpBarcode! SharpBarcode是C#快速高效.准确的 ...
- JAVA中的四种JSON解析方式详解
JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...
- 选美?作秀?MES系统的选择更应该从实际出发
MES选型不是做秀,不是选美. 如今不少企业在信息化推广应用过程中面面求好.追求完美,用意没错,然而在MES开发过程中,软件商不可能将今后各种可能出现的问题考虑周全,不可能将系统做到十全十美.随着系统 ...
- Android Scrollview嵌套下listView动态加载数据,解决onScrollChanged执行多次数据重复问题
这一篇博客和上一篇讲的都是listView的动态加载,但有所不同的是,本篇的listView是嵌套在ScrollView下的,有时候在一个Activity中可能分为好几个模块,由于展示的需要(手机屏幕 ...
- phpstorm分别在Mac和Windows下启动命令行,并启用ssh
Mac:在terminal下运行 sudo -i 输入密码 就可以用ssh IP:端口 命令行登录了 DAssist是一个命令行开发辅助,可直接在系统命令行工具中使用,Linux和MacOS等自带 ...
- JS数据打印的几种方式
/** * 在页面输出内容! */ document.write("This's Great!"); /** * 控制台打印: */ console.log("This ...
- Odoo search 搜索视图详解与搜索视图工作原理
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826430.html 搜索视图 搜索视图的search标签本身没什么属性可以使用,只要是<searc ...
- 内核中dump_stack的实现原理(3) —— 内核函数printk的实现
参考内核文档: Documentation/printk-formats.txt 在内核中使用dump_stack的时候可以看到如下用法: static inline void print_i ...