java编程之POI读取excel表格的内容
07版本的excel需要另外加一个jar包。xbean.jar的jar包
读取代码模板。利用模板介绍读取excel的一些poi的api这是重点
/**
* 读取excel文件
* @Title: readExcel
* @Description: TODO(这里用一句话描述这个方法的作用)
* @author 尚晓飞
* @date 2014-11-10 上午8:58:01
* @param readPath 读取电脑硬盘上某个excel的绝对路径 例如:C://20141110中石油.xlsx
* @see com.bjsxt.sxf.service.ReadExcelService#readExcel(java.lang.String)]
* CELL_TYPE_NUMERIC 数值型 0
CELL_TYPE_STRING 字符串型 1
CELL_TYPE_FORMULA 公式型 2
CELL_TYPE_BLANK 空值 3
CELL_TYPE_BOOLEAN 布尔型 4
CELL_TYPE_ERROR 错误 5
*/
@Override
public void readExcel(String readPath) {
try {
//生成文件的输入流
InputStream inexcel=new FileInputStream(readPath);
//生成输入excel文件的内存模型
Workbook wb=WorkbookFactory.create(inexcel);
//获取具体表格名的对象
Sheet sheet=wb.getSheet("尚晓飞");
//Sheet sheet2=wb.getSheetAt(0);获取指定下标的表格对象。行和列的下标都是从0开始 //定义记录一行数据的值
Date date=null;//时间
double jiage=0;//价格
Integer xianliang=0;//现量
String borS=null;//类型 //获取excel表中存在值的行对象的迭代器
Iterator<Row> iterator=sheet.iterator();
while (iterator.hasNext()) {
Row row=iterator.next();
//获取excel表中存在值的某行的列对象的迭代器
Iterator<Cell> cIterator=row.cellIterator();
while (cIterator.hasNext()) {
Cell cell=cIterator.next();
if(cell.getCellType()==cell.CELL_TYPE_BLANK){
//如果单元格为空值,暂停本次循环继续下次循环
continue;
}
//获取当前单元格的列索引 。从0开始
Integer columnIndex=cell.getColumnIndex();
//获取当前单元格的行索引。从0开始
Integer rowIndex=cell.getRowIndex(); if(cell.getCellType()==cell.CELL_TYPE_NUMERIC){//判断单元格的值是数字格式 if(HSSFDateUtil.isCellDateFormatted(cell)){//判断单元格是日期格式
SimpleDateFormat dateformat = new SimpleDateFormat("HH-mm");
//时间
date = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());//获取成DATE类型
String fdate = dateformat.format(date);
System.out.println("rowIndex-->"+rowIndex+" columnIndex-->"+columnIndex+" value-->"+fdate); }else{ if(cell.getColumnIndex()==1){
//价格
jiage=cell.getNumericCellValue();
System.out.println("rowIndex-->"+rowIndex+" columnIndex-->"+columnIndex+" value-->"+jiage);
}else if(cell.getColumnIndex()==2){
//现量
xianliang=(int) cell.getNumericCellValue();
System.out.println("rowIndex-->"+rowIndex+" columnIndex-->"+columnIndex+" value-->"+xianliang);
}
} } if(cell.getCellType()==cell.CELL_TYPE_STRING){//单元格的值为字符串
//类型
borS=cell.getStringCellValue();
System.out.println("rowIndex-->"+rowIndex+" columnIndex-->"+columnIndex+" value-->"+borS);
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
java编程之POI读取excel表格的内容的更多相关文章
- java用poi读取Excel表格中的数据
Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版.Apache POI 代 ...
- 利用java反射机制实现读取excel表格中的数据
如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.Lis ...
- java中使用poi导出excel表格数据并且可以手动修改导出路径
在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下
- java中使用 POI导出excel表格的简单实现
大概流程分7步: 1.创建工作簿 --> 2.创建sheet表 --> 3.创建row行(建议使用循环) --> 4.用row行逐一创建单元格(建议使用循环) --> 5.单元 ...
- POI读取Excel数据
POI读取Excel表格数据 * {所需相关jar下载: * commons-collections4-4.4.jar * commons-compress-1.19.jar * poi-4.1.1. ...
- Java读取excel表格
Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建, ...
- Java开发小技巧(六):使用Apache POI读取Excel
前言 在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel.csv.xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的, ...
- java通过poi读取excel中的日期类型数据或自定义类型日期
Java 读取Excel表格日期类型数据的时候,读出来的是这样的 12-十月-2019,而Excel中输入的是 2019/10/12 或 2019-10-12 poi处理excel时,当excel没 ...
- java使用poi读取ppt文件和poi读取excel、word示例
java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm
随机推荐
- PHP 数组遍历 foreach 语法结构
foreach 语法结构用于遍历数组. foreach() PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未 ...
- LintCode刷题指南:字符串处理(C++,Python)
题目:两个字符串是变位词 题目难度:简单 题目描述: 写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串. 解题思路: C++:引入哈希的思维,这道题就 ...
- PHP XML Parser 函数
PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证. XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XML 教程 中找到更多有关 XML 的 ...
- DataTemplate——数据模板的一个典型例子
下面是ListBox.ItemTemplate(数据模板)应用的“典型”例子,概述如下两点: 1:Grid部分,用来“规划” 数据 显示的 布局(即数据长成什么样子) 2:给DataTempl ...
- 启用/禁用以太网的批处理,用于一个网卡切换本地网络和wifi使用(Win10)
注意下面时英文版上默认网络使用,同时接入了网线和wifi时,本地网络优先wifi. 所以禁用本地网络就会自动连接到wifi,启用本地网络,就会禁用wifi. 批处理支持 -y 参数,跳过用户输入y,代 ...
- UVA-1615 Highway (贪心,区间选点)
题目大意:有一条沿x轴正方向,长为L的高速公路,n个村庄,要求修建最少的公路出口数目,使得每个村庄到出口的距离不大于D. 题目分析:区间选点问题.在x轴上,到每个村庄距离为D的点有两个(超出范围除外) ...
- 普通用户启动redis
重庆231 Redis 服务器 redis用户启动 复制 /etc/init.d/redis 启动脚本到 /redisdata/redis3.2下面,修改内容 [root@localhost ~]# ...
- 2018.11.14 Chopin’s
The lineaments of Chopin’s肖邦 short, dramatic life are familiar to most classical-music enthusiasts. ...
- 浅析C#中ASP.NET页面的生存周期
一般来说,页要经历下表概述的各个阶段.除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于页. 阶段 说明 页请求 页请求发生在页生命周期开始之前.用户请求页时,ASP.NET ...
- 微信红包算法TEST
1.基本算法 设定总金额为10元,有N个人随机领取:N=1 则红包金额=X元: N=2 为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数 第二个红包=10-第一个红包金 ...