- 浏览: 314788 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
every:
真JB坑爹,标题redhat6 结果用的时5.3 ,尼玛标 ...
RedHat Linux 6企业版开启VNC Server远程桌面 -
okooo00:
五年光景蹉跎,最终还是烂尾了,从此人生又少了一样追求
《凡人修仙传》点评 -
mikey_5:
原来是这样子判断数据格式的,Thanks
POI读取Excel浅谈 -
jveqi:
tracy_meimei 写道楼主,我试过N多次了,在我的my ...
MyEclipse6.5 下Axis2插件的下载和安装 -
jsx112:
...
MySQL select into和SQL select into
先看代码,挨句解释:
一般遍历使用两种方式,1:得到总的行数和每行的列数,然后循环。2:使用迭代
先看第一种:
package com.golden.test; import java.io.File; import java.io.FileInputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; /** * * @author 崔素强 * */ public class PoiReadXls2 { public static void main(String[] args) { File f = new File("c:\\a.xls"); try { FileInputStream is = new FileInputStream(f); HSSFWorkbook wbs = new HSSFWorkbook(is); HSSFSheet childSheet = wbs.getSheetAt(0); // System.out.println(childSheet.getPhysicalNumberOfRows()); System.out.println("有行数" + childSheet.getLastRowNum()); for (int j = 0; j < childSheet.getLastRowNum(); j++) { HSSFRow row = childSheet.getRow(j); // System.out.println(row.getPhysicalNumberOfCells()); // System.out.println("有列数" + row.getLastCellNum()); if (null != row) { for (int k = 0; k < row.getLastCellNum(); k++) { HSSFCell cell = row.getCell(k); if (null != cell) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: // 数字 System.out.print(cell.getNumericCellValue() + " "); break; case HSSFCell.CELL_TYPE_STRING: // 字符串 System.out.print(cell.getStringCellValue() + " "); break; case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean System.out.println(cell.getBooleanCellValue() + " "); break; case HSSFCell.CELL_TYPE_FORMULA: // 公式 System.out.print(cell.getCellFormula() + " "); break; case HSSFCell.CELL_TYPE_BLANK: // 空值 System.out.println(" "); break; case HSSFCell.CELL_TYPE_ERROR: // 故障 System.out.println(" "); break; default: System.out.print("未知类型 "); break; } } else { System.out.print("- "); } } } System.out.println(); } } catch (Exception e) { e.printStackTrace(); } } }
得到Excel的文件然后读取,这个很简单。关键有两个地方,也许在网上会看到有的这样使用有的那样使用。
System.out.println("有行数" + childSheet.getLastRowNum());
System.out.println(childSheet.getPhysicalNumberOfRows());
System.out.println("有列数" + row.getLastCellNum());
System.out.println(row.getPhysicalNumberOfCells());
如果人都拷贝代码进行使用了,不知道有什么区别。太多的区别不知道,但是有一点我发现了,那就是如果中间各行或者隔列的话getPhysicalNumberOfRows和getPhysicalNumberOfCells就不能读取到所有的行和列了。
再者,一定要对单元格的格式进行判断switch (cell.getCellType()),不同的单元格格式使用不同的方法。最后加上为止类型,以防万一。
而且在数字类型里,又分为了纯数字和时间格式:
case HSSFCell.CELL_TYPE_NUMERIC: // 数值型 if (HSSFDateUtil.isCellDateFormatted(cell)) { // 如果是date类型则 ,获取该cell的date值 value = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString(); } else { // 纯数字 value = String.valueOf(cell.getNumericCellValue()); }
还有一种迭代的方法:
package com.golden.test; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * * @author 崔素强 * */ public class PoiReadXls { @SuppressWarnings( { "unchecked", "deprecation" }) public static void main(String[] args) { File f = new File("c:\\a.xls"); try { InputStream input = new FileInputStream(f); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); // System.out.print("行:" + row.getRowNum() + " "); Iterator cells = row.cellIterator(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); // System.out.println("列:" + cell.getCellNum()); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: // 数字 System.out.print(cell.getNumericCellValue() + " "); break; case HSSFCell.CELL_TYPE_STRING: // 字符串 System.out.print(cell.getStringCellValue() + " "); break; case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean System.out.println(cell.getBooleanCellValue() + " "); break; case HSSFCell.CELL_TYPE_FORMULA: // 公式 System.out.print(cell.getCellFormula() + " "); break; case HSSFCell.CELL_TYPE_BLANK: // 空值 System.out.println(" "); break; case HSSFCell.CELL_TYPE_ERROR: // 故障 System.out.println(" "); break; default: System.out.print("未知类型 "); break; } } System.out.println(); } } catch (IOException ex) { ex.printStackTrace(); } } }
这种方法,如果数据的紧凑的,使用还是方便的,但是我发现,如果是空行或者是空列,他就会隔过去。具体的自己试试就知道了。
另外,也能看到这里得到Excel文件的方式是通过File,如果要引用到Struts2里,这是很简单的,因为Struts2上传时Action里定义的就是File或者File数组。
发表评论
-
Mina开发笔记
2014-12-08 20:08 0import java.nio.charset.Ch ... -
Excel中日期与数字的转换代码
2014-05-30 23:24 2778public static void main(St ... -
求一个月有几周
2013-02-22 18:19 1192int year = 2013; int month= ... -
The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
2012-09-13 11:58 2322部署 web project 到weblogic92(换成10 ... -
ecllipse无法启动,一直停留刚开始启动界面
2012-07-18 11:47 24091、 故障发生原因 :由于电脑配置较差 ,经常死机 或者 ... -
启动JBOSS,提示错误1098端口被占用的解决方案
2012-06-25 10:25 1792问题:启动JBOSS,提示错误1098端口被占用 方案一: ... -
Version 1.3.1_01 of the JVM is not suitable for this product.Version:1.4.1 or gr
2012-05-30 17:06 1153Version 1.3.1_01 of the JVM is ... -
java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supp
2012-04-10 21:51 1974java.lang.AbstractMethodError: ... -
org.apache.axis2.databinding.utils.BeanUtil.getPullParser错误
2012-03-28 12:56 1921在开发ssh+axis2的webservice应用中,报这个错 ... -
增加eclipse启动的Tomcat内存的
2011-09-30 10:04 8925JAVA程序启动时JVM都会分配一个初始内存和最大内存给这 ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-09-26 10:02 12601、 PermGen space的全称 ... -
POI读取EXCEL教程
2011-09-24 14:22 1845一、Excel基础 二、HSSF概况 三、通过user ... -
有关java中的Date,String,Timestamp之间的转化问题
2011-09-22 17:10 1440一.获取系统当前时间: 1.System.out.print ... -
Hibernate温习(4)--三大类查询总结
2011-09-14 12:49 1352[url]Hibernate目前总共分为三大类查询:creti ... -
hibernate 关系映射 annotation 版
2011-09-06 16:29 1541关于mappedBy 双向关联 ... -
hibernate+spring 注解 对事务的一些信息
2011-09-06 16:27 1630事务注解说明@Transactional 类事务说明机制 ... -
JPA一对多,多对多映射
2011-09-03 23:46 4026JPA(Java Persistence API)是Sun ... -
Rational Rose 生成java代码
2011-08-25 10:26 1962一,正向工程 1、设置默认语言为Java,Tools- ... -
SOA服务设计原则-转载
2011-08-24 10:27 1128这一部分是有关整个 SOA 系统的指南,代表了在建立系统时需要 ... -
JAVA设计模式之单例模式
2011-08-10 14:37 964一、单例模式的介绍 Singleton是一种创建型模式 ...
相关推荐
要实现"利用POI读取excel写入到word",我们需要以下步骤: 1. **准备环境**:首先,确保你的项目已经引入了Apache POI的依赖。在给定的压缩包中,"poi - 副本"可能是包含POI库的JAR文件,你需要将其添加到你的项目...
android5使用poi读取excel,android5使用poi读取excel,android5使用poi读取excel,android5使用poi读取excel
本教程将详细讲解如何使用Apache POI库来读取Excel文件的内容。 首先,为了在Java项目中使用Apache POI,我们需要通过Maven进行依赖管理。在`pom.xml`文件中添加以下依赖: ```xml <groupId>org.apache.poi ...
Apache POI提供了丰富的API,可以实现对Excel文件的复杂操作,如合并单元格、设置样式、处理公式等。在Android开发中,这些功能同样适用,但需要注意资源管理,因为Android设备的内存有限。 总的来说,Apache POI是...
POI读取excel的例子
标题中的“poi读取excel并输出到jsp页面”是指使用Apache POI库来处理Microsoft Excel文件,并将数据在JavaServer Pages (JSP) 页面上显示的技术。Apache POI 是一个开源项目,它允许开发者创建、修改和显示MS ...
**POI读取Excel** 读取Excel主要涉及以下步骤: 1. **打开Workbook**:通过 FileInputStream 读取Excel文件,然后创建Workbook对象。 2. **获取Sheet**:从Workbook中获取需要的Sheet。 3. **遍历Row和Cell**:...
实现了JAVA 窗口,读取EXCEL文件,用poi读取EXCEL内容只是一个小例子
Apache POI提供对Microsoft Office格式的全面支持,包括Excel的.xlsx格式。此精简版可能是为了减小Android应用的体积和提高性能,移除了不必要的部分,但仍保留了读取Excel文件的核心功能。 3. **aa-poi-ooxml-...
apache poi 读取 Excel 的 jar 包 博文链接:https://wxinpeng.iteye.com/blog/231895
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...
在Java编程环境中,如果你需要读取或写入Excel文件,POI 提供了强大的支持。本教程将深入讲解如何使用POI的HSSF组件来处理Excel 97-2003格式的文件(BIFF8格式)。 一、Excel基础 Excel 97 文件格式,也被称作BIFF8...
标题提到的“poi读取Excel用到的jar包”指的是在Java项目中使用POI库进行Excel操作所需引入的依赖文件。这些jar包在描述中给出,包括了以下几个: 1. poi-ooxml-schemas-3.8-beta5-20111217.jar:这个文件包含了...
本文将深入探讨如何使用Java的Apache POI库来读取Excel文件,并处理其中合并单元格的数据,同时将这些数据存储到实体类中以供后续使用。 Apache POI是一个强大的库,允许程序员使用Java来创建、修改和显示Microsoft...
本篇将详细讲解如何使用Apache POI读取Excel文件中的带格式数据。 首先,理解Apache POI的基本架构至关重要。POI提供了HSSF(Horrible Spreadsheet Format)用于处理老版本的.xls文件,而XSSF用于处理较新的.xlsx...
本篇将详细讲解如何利用Java的开源库Apache POI,结合反射机制,通过ExcelUtil工具类简化Excel读取的过程。 Apache POI是一个强大的库,它允许Java程序员创建、修改和展示MS Office格式的文件,包括Excel。在传统的...
在Java环境中,如果你需要使用POI库来读取、写入或操作Excel文件,你需要确保你的项目中包含了正确的JAR文件。在这个场景中,你提到的几个JAR文件都是Apache POI的不同版本和组件: 1. **poi-3.8.jar**:这是Apache...
在这个"利用POI解析excel并存入数据库demo"中,我们将关注如何使用 POI 库来读取 Excel 文件,并将数据有效地存入 MySQL 数据库。 首先,要开始使用 POI,你需要在你的项目中引入相应的依赖。如果你使用的是 Maven...
#### 三、使用 POI 创建和读取 Excel 文件 为了使用 POI 操作 Excel 文件,首先需要准备以下环境: 1. **JDK 版本**:至少需要 JDK 1.4 或更高版本。 2. **POI 库**:下载 POI 库,可以从 Apache 官方网站获取:...