POI操作Excel详解,读取xls和xlsx格式的文件
package
org.ian.webutil;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileNotFoundException;
import
java.io.IOException;
import
java.io.InputStream;
import
jxl.Cell;
import
jxl.Sheet;
import
jxl.Workbook;
import
jxl.read.biff.BiffException;
import
org.apache.commons.logging.Log;
import
org.apache.commons.logging.LogFactory;
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;
public
class
ReadExcel {
private
static
final
Log log = LogFactory.getLog(ReadExcel.
class
);
/**
* 判断后缀分批入
*/
private
static
void
parseSUCCEXX(String realPath,String fileName){
String [] pfix= fileName.split(
"\\."
);
String suffix = pfix[pfix.length -
1
];
if
( suffix!=
null
&&!suffix.equals(
""
)&&suffix.equals(
"xls"
)){
System.out.println(
"xls"
);
// jxl方法可读取.xls格式
jlxExcel(realPath,fileName);
}
else
if
(suffix .equals(
"xlsx"
)){
System.out.println(
"xlsx"
);
// poi方法可读取Excel2007即.xlsx格式
poiExcel(realPath,fileName);
}
}
/**
* 读取 xls JXL
* @param realPath
* @param fileName
*/
private
static
void
jlxExcel(String realPath,String fileName){
//===============jlx方法=================
try
{
File fileDes =
new
File(realPath);
InputStream str =
new
FileInputStream(fileDes);
// 构造Workbook(工作薄)对象
Workbook rwb=Workbook.getWorkbook(str);
Sheet rs=rwb.getSheet(
0
);
//获取第一张工作表
int
rsRows=rs.getRows();
//获取Sheet表中所包含的总行数
int
rsCols=rs.getColumns();
//获取Sheet表中所包含的总列数
log.info(
"========行========"
+rsRows+
"=====列========"
+rsCols);
for
(
int
i=
1
;i<rsRows;i++){
//读取行
log.info(
"========执行第========"
+i+
"行"
);
for
(
int
j=
0
;j<rsCols;j++){
log.info(
"========执行第========"
+j+
"列"
);
Cell coo=rs.getCell(j, i);
//单元格定位列,再定位行
log.info(
"========coo========"
+coo);
String strc=coo.getContents();
//读取内容
log.info(
"========读取内容strc========"
+strc);
System.out.println(
"文件"
+fileName+
"的内容为:"
+strc);
}
}
rwb.close();
}
catch
(FileNotFoundException e) {
e.printStackTrace();
}
catch
(BiffException e) {
e.printStackTrace();
}
catch
(IOException e) {
e.printStackTrace();
}
//==========读取excel文件内容=结束=====================
}
/**
* POI读取 xlsx
* @param realPath
* @param fileName
*/
private
static
void
poiExcel(String realPath,String fileName){
try
{
File fileDes =
new
File(realPath);
InputStream str =
new
FileInputStream(fileDes);
XSSFWorkbook xwb =
new
XSSFWorkbook(str);
//利用poi读取excel文件流
XSSFSheet st = xwb.getSheetAt(
0
);
//读取sheet的第一个工作表
int
rows=st.getLastRowNum();
//总行数
int
cols;
//总列数
log.info(
"========行========"
+rows);
for
(
int
i=
0
;i<rows;i++){
XSSFRow row=st.getRow(i);
//读取某一行数据
if
(row!=
null
){
//获取行中所有列数据
cols=row.getLastCellNum();
log.info(
"========行========"
+rows+
"=====列========"
+cols);
for
(
int
j=
0
;j<cols;j++){
XSSFCell cell=row.getCell(j);
if
(cell==
null
){
System.out.print(
" "
);
}
else
{
//判断单元格的数据类型
switch
(cell.getCellType()) {
case
XSSFCell.CELL_TYPE_NUMERIC:
// 数字
System.out.print(cell.getNumericCellValue() +
" "
);
break
;
case
XSSFCell.CELL_TYPE_STRING:
// 字符串
System.out.print(cell.getStringCellValue() +
" "
);
break
;
case
XSSFCell.CELL_TYPE_BOOLEAN:
// Boolean
System.out.println(cell.getBooleanCellValue() +
" "
);
break
;
case
XSSFCell.CELL_TYPE_FORMULA:
// 公式
System.out.print(cell.getCellFormula() +
" "
);
break
;
case
XSSFCell.CELL_TYPE_BLANK:
// 空值
System.out.println(
""
);
break
;
case
XSSFCell.CELL_TYPE_ERROR:
// 故障
System.out.println(
"故障"
);
break
;
default
:
System.out.print(
"未知类型 "
);
break
;
}
}
}
}
}
}
catch
(IOException e){
e.printStackTrace();
}
}
/**
* test
* @param args
*/
public
static
void
main(String[] args) {
String fileName =
"banShot.xlsx"
;
String realPath =
"d:/"
+fileName;
parseSUCCEXX(realPath, fileName);
}
}
POI操作Excel详解,读取xls和xlsx格式的文件的更多相关文章
- POI操作Excel详解,HSSF和XSSF两种方式
package com.tools.poi.lesson1; import java.io.FileInputStream; import java.io.FileNotFoundException; ...
- POI操作Excel
POI和Excel简介 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作 ...
- POI操作Excel(xls、xlsx)
阿帕奇官网:http://poi.apache.org/ POI3.17下载:http://poi.apache.org/download.html#POI-3.17 POI操作Excel教程(易百教 ...
- java使用Apache POI操作excel文件
官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is ...
- 自己封装的poi操作Excel工具类
自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...
- 自己的包poi操作Excel工具
在前面的文章<使用poi读写Excel>中分享了一下poi操作Excel的简单演示样例.这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完毕的功能是:读取Excel.汇总E ...
- java使用POI操作excel文件,实现批量导出,和导入
一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...
- 利用Apache POI操作Excel
最近在做接口,有个功能是利用Excel导入汽车发动机所需零件信息到线上系统中.简单回顾一下之前学过的用java操作Excel. 1.maven配置Apache POI pom.xml中配置POIjar ...
- java里poi操作excel的工具类(兼容各版本)
转: java里poi操作excel的工具类(兼容各版本) 下面是文件内具体内容,文件下载: import java.io.FileNotFoundException; import java.io. ...
随机推荐
- Chrome 开发者控制台中,你可能意想不到的功能
Chrome 有内置的开发者工具.它拥有丰富的特性,比如元素(Elements).网络(Network)和安全(Security).今天,我们主要关注一下 JavaScript 控制台. 当我最初写代 ...
- WPF双向数据绑定总结
参考官方:https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/data/data-binding-wpf 实例程序:https://files. ...
- JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
在前端开发中,有时我们需要阻止冒泡和阻止默认事件的发生. 一.event.stopPropagation() 阻止事件的冒泡,不让事件向documen上蔓延,但是默认事件任然会执行,当调用这个方法的时 ...
- Gitlab团队协作流程
一:加入群组 项目管理员添加用户到群组,赋予权限(owner.developer...). 二:拉取项目,建立分支 通过git clone拉取项目到本地,通过终端打开项目目录,创建自己的分支,并推送到 ...
- 每天一个linux命令(9):touch
1.命令简介 touch命令将每个文件的访问时间和修改时间改为当前时间. 2.用法 touch [选项]... 文件... 3.选项 -a 只更改访问时间 -c, --no-create 不创建任何文 ...
- 阿里云提示WordPress“/wp-includes/http.php输入IP验证不当”的解决办法
本文转自:https://www.liuzhishi.com/2931.html 标题: wordpress IP验证不当漏洞 简介: wordpress /wp-includes/http.php文 ...
- 多线程处理N维度topk问题demo--[c++]
问题 -对多维度特征进行topk排序,使用c++ 优先队列模拟最大堆. /* ---------------------------------- Version : ?? File Name : d ...
- 【C++】C++中的迭代器
目录结构: contents structure [-] 迭代器运算符 迭代器类型 begin和end运算符 迭代器的算术运算 可以使用下标来访问string对象或vector对象的元素,还有另外一种 ...
- java 定时任务之一 @Scheduled注解(第一种方法)
使用spring @Scheduled注解执行定时任务: 运行!!! 关于Cron表达式(转载) 表达式网站生成: http://cron.qqe2.com/ 直接点击 作者:http://blog ...
- WebViewJavascriptBridge 进行js 与native通信。
1, iOS端加载web页面.开启日志并给webView建立JS与OC的桥梁 - (void)viewWillAppear:(BOOL)animated { if (_bridge) { retur ...