public static void importExcel2(File file) throws Exception {
InputStream is = new FileInputStream(file);
Workbook workbook;
try {
if(file.getName().indexOf(".xlsx")>-1){
workbook = new XSSFWorkbook(is);
} else {
workbook = new HSSFWorkbook(is);
}
//HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead)); //2003 创建对Excel工作簿文件的引用
//XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(fileToBeRead)); //2007,2010 创建对Excel工作簿文件的引用
Sheet sheet = workbook.getSheetAt(0);//创建对工作表的引用
int rows = sheet.getPhysicalNumberOfRows();// 获取表格的
for (int r = 1; r < rows; r++) { // 循环遍历表格的行
String value = null ;
Row row = sheet.getRow(r); // 获取单元格中指定的行对象
if (row != null) {
int cells = row.getPhysicalNumberOfCells();// 获取单元格中指定列对象
System.out.println(cells+"列数。。。");
// for (short c = 0; c < cells; c++) { // 循环遍历单元格中的列
// Cell cell = row.getCell((short) c); // 获取指定单元格中的列
// if (cell != null) {
// if (cell.getCellType() == Cell.CELL_TYPE_STRING) { // 判断单元格的值是否为字符串类型
// // value += cell.getStringCellValue() + ",";
// System.out.println(cell.getStringCellValue()+"==="+cell.getCellType());
// } else if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){
// System.out.println(cell.getDateCellValue()+"==="+cell.getCellType());
// //DateUtil.isCellInternalDateFormatted(arg0);
// }
//
// }
// }
CaseInfor caseInfor=new CaseInfor();
if(row.getCell(0)!=null&&row.getCell(0).getCellType()==Cell.CELL_TYPE_STRING){
caseInfor.title=row.getCell(0).getStringCellValue();
}
if(row.getCell(1)!=null){
if(row.getCell(1)!=null&&isCellDateFormatted(row.getCell(1))){
caseInfor.acceptTime=row.getCell(1).getDateCellValue();
}else{flash.put("error", "受理时间非日期格式");
list(null,null);}
}
if(row.getCell(2)!=null){
if(isCellDateFormatted(row.getCell(2))){
caseInfor.deadTime=row.getCell(2).getDateCellValue();
}else{flash.put("error", "办案期限非日期格式");
list(null,null);}
}
if(row.getCell(3)!=null&&row.getCell(3).getCellType()==Cell.CELL_TYPE_STRING){
caseInfor.department=row.getCell(3).getStringCellValue();
}
if(row.getCell(4)!=null&&row.getCell(4).getCellType()==Cell.CELL_TYPE_STRING){
caseInfor.process=row.getCell(4).getStringCellValue();
}
if(row.getCell(5)!=null&&row.getCell(5).getCellType()==Cell.CELL_TYPE_STRING){
caseInfor.account=row.getCell(5).getStringCellValue();
}
if(row.getCell(6)!=null&&row.getCell(6).getCellType()==Cell.CELL_TYPE_STRING){
caseInfor.information=row.getCell(6).getStringCellValue();
System.out.println(row.getCell(6).getStringCellValue());
}
if(row.getCell(7)!=null&&row.getCell(7).getCellType()==Cell.CELL_TYPE_STRING){
caseInfor.mandatory=row.getCell(7).getStringCellValue();
}
caseInfor.save();
}
}
} catch (Exception e) {
e.printStackTrace();
}
flash.put("success", "导入成功");
list(null,null);
}
public static boolean isCellDateFormatted(Cell cell) {
if (cell == null) return false;
boolean bDate = false;
if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){
double d = cell.getNumericCellValue();
if ( DateUtil.isValidExcelDate(d) ) {
CellStyle style = cell.getCellStyle();
if(style==null) return false;
int i = style.getDataFormat();
String f = style.getDataFormatString();
bDate = DateUtil.isADateFormat(i, f);
}
}
return bDate;
}

EXCL poi导入的更多相关文章

  1. POI导入导出

    一.使用POI导出Execl表格 需要的jar包 package cn.yxj.poi; import java.io.FileOutputStream; import java.util.Date; ...

  2. Java利用POI导入导出Excel中的数据

         首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...

  3. Java中使用poi导入、导出Excel

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  4. poi 导入导出的api说明(大全)

    原文链接:http://www.cnblogs.com/qingruihappy/p/8443101.html poi 导入导出的api说明(大全) 一. POI简介 ApachePOI是Apache ...

  5. poi导入Excel,数字科学记数法转换

    在这里分享一下使用poi 导入Excel时 把数字转换为科学记数法的解决方法: 就是使用DecimalFormat对 i 进行了格式化 结果为:

  6. POI导入和导出Excel总结

    POI导入和导出Excel总结   POI使用总结 1.POI读取Excel 打开工作簿的方式有以下两种简单的应用,POI读取和输出工作簿文件都可以通过以下两种方式来声明: //通过输入流的方式打开本 ...

  7. 使用POI导入EXCEL报java.lang.IncompatibleClassChangeError

    使用POI导入xls格式的excel报java.lang.IncompatibleClassChangeError异常,而导入xlsx正常. oracle.apps.fnd.framework.OAE ...

  8. Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)

    ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...

  9. poi导入读取时间格式问题

    万能处理方案: 所有日期格式都可以通过getDataFormat()值来判断 yyyy-MM-dd-----14 yyyy年m月d日--- 31 yyyy年m月-------57 m月d日  ---- ...

随机推荐

  1. WCF开发指南之构建服务

    一. 引言 Windows通讯基础(简称为WCF)是一种SDK,用于让你使用典型的CLR编程结构(例如用于发布和消费服务的类和接口等)来构建Windows面向服务的应用程序.WCF的编程模型是声明性的 ...

  2. [深入Python]__new__和__init__

    class A(object): def __init__(self): print "init" def __new__(cls,*args, **kwargs): print ...

  3. JDBC中的ResultSet

    ResultSet:结果集.存放数据库中的数据,可以将它想象成一张数据表,通过Statement对象中的executeQuery()方法获得 import com.mysql.jdbc.Stateme ...

  4. 第二个Sprint冲刺团队贡献分

    201306114322 邵家文 50分 201306114319 陈俊金 10分 201306114320 李新    10分 201306114324 朱浩龙 10分

  5. IP的包头格式什么?请分析每个字段的含义

    Version:版本号 Header Length:IP包头长度 Type of service:服务类型 Total Length:IP包总长 Identifier:标识符 Flags:标记 Fra ...

  6. std::ostringstream输出流详解

    一.简单介绍 ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中.ostringstream类通常用于执行C风格的串流的输出操作,格式化字符串,避免申请大量的缓 ...

  7. 2016HUAS_ACM暑假集训1A - 士兵队列训练问题

    这道题我觉得是个简单的模拟题,整理一下思路,弄清楚题意就好了. 新手上路,采用两个数组进行交互赋值,用的方法也比较笨,思路差不多都在代码的注释里了. 下面是题目大意: 首先将士兵从1开始编号(士兵总数 ...

  8. lua脚本教程

    --[[工具准备 1.一个支持UTF8无BOM编码的工具,例如:notepad++ 2.一个多文件搜索关键字的工具,例如:File Seeker 3.Eluna对应端的源码 ]]-- --[[网站相关 ...

  9. Channel States

    Introduction A channel (a call) will go through many different states during its lifetime. Here we w ...

  10. AsyncTask 轻量级的异步类

    初步:http://www.cnblogs.com/devinzhang/archive/2012/02/13/2350070.html 详细:http://blog.csdn.net/liuhe68 ...