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 ...
随机推荐
- bzoj 2818: Gcd 歐拉函數
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1633 Solved: 724[Submit][Status] Descript ...
- NWERC 2012 Problem I Idol
又是个2-sat的模板题: 反正评委的选择必须有一个是正确的,1错误,那么2就必须正确: 这就是一个2-sat问题. 直接上白书的模板啊,不过稍微要注意的一点是对于第一个点必须要选择,不然就违反了题意 ...
- 升级 Java 编程规范的6个约定
作为 Java 开发人员,我们会遵循一系列的编码风格和开发习惯.习惯使然是一方面,另一方面,我们也从不停下脚步质疑这些习惯.一段时间以后,笔者养成了一些不同于常人的编码风格和开发习惯.当第一次了解到这 ...
- 转-Python optionParser模块的使用方法
Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse,它功 ...
- 一个漂亮的DIV搜索条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Spark:Master High Availability(HA)高可用配置的2种实现
Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题.如何解决这个单点故障的问题,Spar ...
- lingo运筹学上机实验指导
<运筹学上机实验指导>分为两个部分,第一部分12学时,是与运筹学理论课上机同步配套的4个实验(线性规划.灵敏度分析.运输问题与指派问题.最短路问题和背包问题)的Excel.LONGO和LI ...
- Eclipse下安装及配置maven项目管理工具
①eclipse下maven插件安装. 本地maven安装.环境变量配置完成后,打开eclipse,点击eclipse菜单栏Help->Eclipse Marketplace搜索关键字maven ...
- 两种常用的启动和关闭MySQL服务
本博文的主要内容有 .通过图形界面来启动和关闭MySQL服务 .通过DOS窗口来启动和关闭MySQL服务 1.通过图形界面来启动和关闭MySQL服务 2.通过DOS窗口来启动和关闭MySQL服务 感谢 ...
- 没有找到 mspdb100.dll 的解决办法
直接从Common7\IDE\下复制这个文件到VC\Bin\下即可解决.(D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE)