- 浏览: 54028 次
- 性别:
- 来自: 洛阳
文章分类
最新评论
poi解析excel步骤详解
一、本次解析excel应用场景描述如下:
客户需要批量处理数据,将这些数据按照一定格式写成excel,上传至服务器处理操作
本次示例主要讲解解析 --之前有一个上传的功能,如有不懂可参看http://patronli.iteye.com/blog/2330288
二、示例:
package com.patronli.action; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.patronli.StrUil; public class testAction { public void doAnalytic() { try { InputStream ip = new FileInputStream(upload);// 获得(excel)输入流 Workbook wb = null; // poi处理(fileContentType是你上传的excel的文件名,主要用来判断格式) if (fileContentType.endsWith(".xls")) { POIFSFileSystem localPOIFSFileSystem = new POIFSFileSystem(ip); wb = new HSSFWorkbook(localPOIFSFileSystem); } else if (fileContentType.endsWith(".xlsx")) { wb = new XSSFWorkbook(ip); } // 如果有多个sheet,可以讲0改为你想要的那个sheet Sheet sheet = wb.getSheetAt(0); Row row = null; int rows = sheet.getLastRowNum();// 获得总行数 if (rows < 1) { // 可以友情提示用户 } else if (rows > 2000) { // 如果服务器处理能力弱,此时可以提醒用户分批处理 } else { // 得到第0行,用户可以在此行填写表头 row = sheet.getRow(sheet.getFirstRowNum()); //获取当前行的各列 String number = StrUil.getCellStringValue(row.getCell(0)); String cardno = StrUil.getCellStringValue(row.getCell(1)); String remark = StrUil.getCellStringValue(row.getCell(2)); String tele = StrUil.getCellStringValue(row.getCell(3)); if (!"序号".equals(number) || !"收款人银行账号".equals(cardno) || !"备注".equals(remark) || !"手机号".equals(tele)) { // 如果要求使用者按照你的模板,此处可以判断用户使用的到底是不是你要求的格式 // 如果不是可以提示用户 } // 从第二行开始拿到真正的数据 for (int i = sheet.getFirstRowNum() + 1; i <= sheet .getLastRowNum(); i++) { row = sheet.getRow(i); if (row == null) {// 发现有空行 // 可以提示用户,从新上传文档 } // 获取当前行的各列数据 String numberV = StrUil.getCellStringValue(row.getCell(0)); String cardnoV = StrUil.getCellStringValue(row.getCell(1)); String remarkV = StrUil.getCellStringValue(row.getCell(2)); //对于纯数字的数据,可以用下面的方法转换列的属性,防止读成科学计数法 //例如,手机号 row.getCell(3).setCellType(XSSFCell.CELL_TYPE_STRING); String teleV = StrUil.getCellStringValue(row.getCell(3)); // 此时已经可以循环拿到每一行的值,可以将这些值存数据库,验证等等操作 } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
三、相关jar包如附件所示
- poi-excelant-3.9-20121203.jar (29.7 KB)
- 下载次数: 0
- poi-3.9-20121203.jar (1.8 MB)
- 下载次数: 0
- poi-ooxml-3.9-20121203.jar (914.7 KB)
- 下载次数: 0
- poi-scratchpad-3.9-20121203.jar (1.2 MB)
- 下载次数: 0
- poi-ooxml-schemas-3.9-20121203.jar (4.6 MB)
- 下载次数: 0
发表评论
-
Condition
2017-01-03 16:58 0condition的应用 -
java对sftp文件进行上传、下载、删除等操作,附详细demo
2016-12-22 18:01 2077这是自己总结的一个类,包含连接sftp,上传,下载等操作,附件 ... -
servlet监听器功能讲解及代码案例
2017-07-08 16:54 614servlet监听器功能讲解及代码案例 监听器的功能很强大, ... -
web.xml之session超时设置 以及设置session超时的几种方法
2016-10-20 16:39 1178web.xml之session超时设置 先说正题,web. ... -
web.xml之过滤器详解 以及常用过滤器demo
2016-10-20 14:15 2698web.xml之过滤器详解 一 ... -
poi导出excel清晰 步骤详解
2016-10-14 14:08 840poi导出excel清晰 步骤详解 一、本次生成excel ... -
struts2下载文件最简化版清晰详解
2016-10-14 11:20 610struts2下载文件最简化版清晰详解 一、应用场景如下: ... -
struts2文件上传详解
2016-10-13 11:26 804struts2文件上传详解 一、jsp代码 <fo ... -
ThreadLocal用法详解
2016-09-29 10:44 1597ThreadLocal用法详解 1.ThreadLocal的 ... -
JSONObject、JSONArray、xml的常用操作
2016-09-28 16:33 1359JSONObject、JSONArray、xml的常用操作 ... -
Rsa签名算法详解
2016-09-22 09:48 4621Rsa签名算法详解 签名生成规则与验证签名规则如下: ... -
Quartz定时任务的实现及详解
2016-09-21 18:03 2136Quartz定时任务的实现及详解 平常工作中经常遇到写定时任 ... -
四种线程池的特性以及测试代码
2016-09-21 09:20 901四种线程池的特点如下 ... -
操作json
2016-09-18 13:01 624总是记不住一些零碎的知识点,这次开个专栏来记录,不定期更新: ... -
日期类型转换
2016-09-18 12:50 531总是记不住一些零碎的知识点,这次开个专栏来记录,不定期更新: ... -
配置文件的读取与写入
2016-09-14 17:00 645读取配置文件: public static void m ... -
HttpPoster接口调用
2016-09-13 13:47 1616工作中经常用到的东西,这也是自己在公司的基础上改造的,感觉挺好 ... -
md5加密
2016-09-13 13:39 593md5工具类如下所示,可以直接拿走用,分享记录一下 pack ... -
AES加密与解密
2016-09-13 13:37 471这个其实是我们项目里面的一个工具类,给大家做一下分享 aes ... -
循环map取值的方法
2016-09-08 13:00 1540循环map取值的方法,如下所示: 方法一: Map< ...
相关推荐
《Excel解析工具POI.jar详解》 在信息技术领域,数据处理是不可或缺的一部分,尤其是在大数据时代,Excel作为广泛使用的表格处理软件,其数据处理能力受到广大用户的青睐。然而,当面对大量Excel数据时,传统的手动...
通过以上步骤,我们可以使用Apache POI和JSF技术实现一个简单的Excel文件导出功能。这种方式不仅易于理解和实现,而且可以很好地满足大多数应用场景的需求。此外,还可以进一步扩展该功能,例如增加样式设置、复杂...
读取Excel文件的基本步骤如下: ```java // 对于.xls文件 FileInputStream fis = new FileInputStream("spreadsheet.xls"); HSSFWorkbook workbook = new HSSFWorkbook(fis); HSSFSheet sheet = workbook....
《使用Apache POI 3.8进行Excel操作的详解》 Apache POI 是一个流行的开源项目,它允许Java开发者创建、修改和显示Microsoft Office格式的文件,尤其是Excel工作簿(.xlsx和.xls)。在给定的标题“Excel操作工具poi...
这部分代码主要负责接收前端发送的文件,并调用`ImportExcelUtil`来解析Excel文件。具体实现取决于具体的业务逻辑。 ##### 4.3 InfoVo.java(将Excel转换为对象存储) 定义一个实体类来封装Excel文件中的数据,便于...
使用`SXSSFWorkbook`创建一个新的Excel工作簿涉及到以下几个关键步骤: - 创建`SXSSFWorkbook`实例。 - 添加新的工作表(`SXSSFSheet`)。 - 设置单元格样式(`CellStyle`)。 - 写入数据到工作表。 #### 示例代码解析 ...
### POI 控制 Excel 导出详解 #### 一、引言 Apache POI 是一个用于读写 Microsoft Office 格式文件(如 .xls、.xlsx、.doc、.ppt 等)的 Java API。其中,HSSF 和 XSSF 分别对应处理 .xls 和 .xlsx 文件。本篇...
### POI 导出 Excel 工具类详解 在日常工作中,经常需要将数据库中的数据导出为Excel格式,便于数据分析或进一步处理。Apache POI 是一个非常实用且功能强大的Java API,它允许程序员创建、修改Excel文件。下面将...
通过以上步骤,可以实现使用POI解析Excel文件,并将其中的数据存储到Oracle数据库中。这在实际工作中是非常常见的需求,例如在进行数据批量导入时,可以大大提高工作效率。 需要注意的是,在实际开发过程中还需要...
5. 写操作步骤详解:要创建一个Excel文件,并在其中添加数据,以下是主要步骤: - 创建工作簿对象`HSSFWorkbook`。 - 通过`createSheet`方法创建工作表。 - 使用`createRow`方法在工作表中创建行。 - 通过`...
【 poi 框架详解与应用】 Apache POI 是一个流行的开源Java库,它允许开发者创建、修改和显示Microsoft Office格式的文件,尤其是Excel工作簿(.xls 和 .xlsx 格式)。在Java环境中,POI 提供了丰富的API,用于读取...
2. **POI读取Excel的基本步骤**: - 引入Apache POI库:首先需要在项目中引入Apache POI的依赖。 - 创建Workbook对象:通过`WorkbookFactory.create()`方法,传入文件输入流或文件路径,创建Workbook对象,这代表...
通过这些API,开发者可以轻松地创建、修改和解析Excel文件,而无需安装Microsoft Office。 #### 三、导出大量数据到Excel的实现思路 当面对大量数据时,直接将所有数据一次性写入单个工作表可能会导致内存溢出等...
### 使用 POI 操作 Excel 的方法详解 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,包括 Excel、Word 和 PowerPoint 等格式。其中,对于 Excel 文件的操作主要依赖于两个核心...
Apache POI是一个流行的开源Java API,主要用于读取和写入Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。这里提到的“生成pdf等”,意味着除了PDF之外,可能还包括了HTML、图片或...
《Apache POI库3.10:Excel导入与导出详解》 Apache POI是一个流行的开源Java库,专用于处理Microsoft Office格式的文件,包括Word、PowerPoint和尤其重要的Excel。在标题“poi.jar-3.10”中,我们关注的是POI库的...
例如,在某些情况下,Excel中的日期格式可能是`yyyy-MM-dd`,但在读取时可能会被解析为`yy-MM-dd`形式,这会给后续的数据处理带来困扰。 #### 解决方案 针对上述问题,本文将介绍一种通过Java语言实现的解决方案,...
**Excel转PDF**的过程通常是通过解析Excel文件的内容并重新构建为PDF格式。TestForExcel2PDF测试类可能包含这样的逻辑:首先,加载Excel文件,然后使用itextpdf的API将工作表的内容转换为PDF页面,最后保存为PDF文件...
### POI 添加批注知识点详解 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,支持 Excel、Word 和 PowerPoint 文件格式。本篇文章主要介绍如何利用 Apache POI 库在 Excel 工作...