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 ...
随机推荐
- Book of Evil
Codeforces Round #196 (Div. 2) D:http://codeforces.com/contest/337/status/D 题意:给你一个树,然后树中有一m个点,求到这m个 ...
- Hibernate 缓存 关于注解方式
要引入 import org.hibernate.annotations.Cache; 在类前面添加: @Cache(usage= CacheConcurrencyStrategy.NONSTRICT ...
- Initializing Spring root WebApplicationContext
最近 我部署ssh项目的时候经常出现这样的问题,我的解决办法是 log4j:WARN No appenders could be found for logger (org.springframewo ...
- 单片机Keil软件仿真与调试技巧
一.引言 单片机软件开发过程中,软件调试遇到的各种问题常令初学者感到不知所措.实际上.各种仿真开发软件的程序调试基本方法和技巧大同小异,掌握正确的程序调试基本技巧.对于排查这些程序错误问题可以起到举一 ...
- eclipse下切换svn用户
在eclipse中经常用到用svn进行代码版本控制,为了提交或更新代码的时候不反复地提示我们输入用户名和密码,于是我们就习惯把访问SVN的用户名密码自动保存起来.以便下次自动使用,不要再次手工输入,但 ...
- Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)
1.Why 最近在写android画图经常用到这几个什么什么To,一开始还真不知道cubicTo这个方法,更不用说能不能分清楚它们了,所以特此来做个小笔记,记录下moveTo.lineTo.quadT ...
- 命令行利器Tmux
Tmux是一个优秀的终端复用软件,类似GNU Screen,但是对两个软件评价已经是一边倒了,大多数人认为tmux功能更加强大,使用更加方便. Tmux不仅可以提高终端工作效率,是服务器管理工作必不可 ...
- C#编程技术层次
不谈具体领域(比如搜索,视频,网络等),单就编程语言这个垂直方向,大体上对它有一个如下的层次划分. 1. 基本运用C#语法,在各种工具和示例代码的支持下,完成一些基本程序任务 2. 熟练掌握面向对象与 ...
- android 自动化(1)
学习android自动化测试要感谢一个朋友耐心的指导 环境搭建:(需要java JDK 以及android SDK) JDK:http://www.oracle.com/technetwork/jav ...
- unity3d 制造自己的水体water effect(一)
first,I wish you a happy new year, and study in spring festival’s eve means you are hardworking,haha ...