Java使用poi对Execl简单_读_操作
public class ReadExecl {
// private final String XLSX = ".xlsx"; // 2007以上版本
// private final String XLS = ".xls"; // 2003版本
@Test
public void readExeclTest() throws Exception{
File file = new File("F:/execl/readTest2.xlsx");
InputStream is = new FileInputStream(file); // 读取Execl
// String suffix = file.toString().substring(file.toString().lastIndexOf("."),file.toString().length()); // 截取文件的后缀
// Workbook wb = null; // 创建一个工作簿
// if(XLSX.equals(suffix)) // 判断下 Execl 的后缀是那个版本
// wb = new XSSFWorkbook(is);
// else if(XLS.equals(suffix))
// wb = new HSSFWorkbook(is);
// else
// throw new RuntimeException("貌似这不是Execl的后缀,请重新检查喔^_^"); // 如果不是Execl就上抛异常
Workbook wb = WorkbookFactory.create(is); // 万能处理版本问题,如果不用 上面注释的准确度创建,就可以考虑这种方式(其实底层也是那样判定的)
Sheet sheet = wb.getSheetAt(0); // 获取一个Execl里面的sheet默认从0开始,也可以通过name来获取wb.getSheet(String name);
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator(); // 创建公式计算器(用来判断获取Execl中的数据是什么类型)
int firstRow = sheet.getFirstRowNum(); // 获取第一行
int lastRow = sheet.getLastRowNum(); // 获取最后一行
for (int i = firstRow; i <= lastRow; i++) {
Row row = sheet.getRow(i); // 获取当前行
int firstCell = row.getFirstCellNum(); // 获取第一个单元格
int lastCell = row.getLastCellNum(); // 获取最后一个单元格
for(int j = firstCell; j <= lastCell; j++){
Cell cell = row.getCell(j); // 获取单元格
CellValue cellValue = evaluator.evaluate(cell); // 计算当前的单元格是什么数据类型
if(cellValue == null) // 如果execl的单元格是空则继续下次循环
continue;
switch (cellValue.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) { // 这里的日期类型会被转换为数字类型,需要判别后区分处理
try {
new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat ("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK).parse(cell.getDateCellValue().toString()));
System.out.println("numeric转日期...");
} catch (ParseException e) {
e.printStackTrace();
}
} else {
System.out.println("numeric类型...");
}
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.println("boolean类型...");
break;
case Cell.CELL_TYPE_STRING:
System.out.println("string类型...");
break;
case Cell.CELL_TYPE_FORMULA:
System.out.println("formula类型...");
break;
case Cell.CELL_TYPE_BLANK:
System.out.println("blank类型...");
break;
case Cell.CELL_TYPE_ERROR:
System.out.println("error类型...");
break;
default:
break;
}
}
}
is.close(); // 记得关闭流,释放资源
}
}
Java使用poi对Execl简单_读_操作的更多相关文章
- Java使用poi对Execl简单_读和写_操作
1 /** 一.简单读取Execl的步骤: * 1.通过流来读取Execl并存放到内存中: * 2.通过WorkbookFactory工作簿工厂来读取内存中存放的execl文档流并创建出一个工作簿 * ...
- Java使用poi对Execl简单操作_总结
poi是Apache组织给开发者提供一套操作office(Execl,Word,PowerPoint)等Java API,开发者通过Poi API可以快速的操作office办公软件,以上3篇博文只是一 ...
- Java使用poi对Execl简单_写_操作
public class WriteExecl { @Test public void writeExeclTest() throws Exception{ OutputStream os = new ...
- java中poi进行execl导出
首先贴出最终导出的execl截图吧: 前台界面如下: 点击导出时,为其按钮的onclick事件添加exportDate()函数: function exportDate(){ var begin_Da ...
- ①java环境变量配置以及简单的dos框操作
DOS:英文全称Disk Operation System,即磁盘操作系统,是个人电脑上使用的一种操作系统,并曾是世界上最广泛使用的操作系统. JDK: 英文全称Java Development Ki ...
- java的poi技术读,写Excel[2003-2007,2010]
在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...
- JAVA使用POI读取EXCEL文件的简单model
一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...
- POI导出Execl文件,使JAVA虚拟机OOM
由于在项目中使用POI导出execl,导致JAVA虚拟机OOM,采用以下方式解决问题: 原先方式: g_wb = new XSSFWorkbook(sourceFile.getInputStream( ...
- java使用poi读取word(简单,简约,直观)
java使用poi读取word(简单,简约,直观) 说明 其实poi的官网上面都是有接口和样例的,只是都是英文 例如网址:http://poi.apache.org/spreadsheet/quick ...
随机推荐
- RAC oracle删除数据库
24:site2-DMS1:~ # su - oracleoracle@site2-DMS1:~> sqlplus / as sysdba SQL*Plus: Release 11.2.0.3. ...
- NSUserDefaults(数据存储)
NSUserDefaults(数据存储) NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下 ...
- Windows Azure功能更新:SQL Server AlwaysOn和Notification Hub 正式商用
一周以前Windows Azure发布了新的更新内容,主要的更新有3项: 虚拟机上的SQL Server支持AlwaysOn可用性组了 Notification Hub商用 自动缩放支持时间策略 这里 ...
- Delphi实现WebService带身份认证的数据传输
WebService使得不同开发工具开发出来的程序可以在网络连通的环境下相互通信,它最大的特点就是标准化(基于XML的一系列标准)带来的跨平台.跨开发工具的通用性,基于HTTP带来的畅通无阻的能力(跨 ...
- 【转】分析器窗口 Profiler window
转自unity圣典: http://game.ceeger.com/Manual/ProfilerWindow.html http://game.ceeger.com/Manual/Profiler. ...
- mac上的键盘生活——打字训练
我的打字真的很有问题,错误率实在是太高了,于是乎下定决心改掉打字习惯,起码为了对得起我的机械键盘 所谓双击键(shift)就是当一个键钮上有两个字符时的辅助选择键,像标注在数字1上的 !,就是在你 ...
- IOS引用的静态库里包含category文件出现“unrecognized selector”的解决办法
来自链接:http://blog.csdn.net/ccf0703/article/details/8279187 针对静态库工程中的Category,在被其他工程引入的时候,会出现selector ...
- 2013=7=12 ACM培训第一天
ACM培训第一天,尽管我嘴上说是来打酱油的,但我非常想学好.1.一定要多思考,多总结:2.多问同学 :3.学会向女生说话,大胆,自信.(今天有女生向我说话了,很高兴.她很大胆,我要向她学习...... ...
- Node.js 初探
概念 Node.js 是构建在Chrome javascript runtime之上的平台,能够很容易的构建快速的,可伸缩性的网络应用程序.Node.js使用事件驱动,非阻塞I/O 模式,这使它能够更 ...
- centos6.5建立cloudera-cdh4.6本地源
1.准备: centos6.5系统,root用户 2.安装所需包: sudo yum install yum-utils createrepo 3.下载cdh4.6的repo: ...