`

poi解析excel步骤详解

    博客分类:
  • java
阅读更多
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包如附件所示

0
0
分享到:
评论

相关推荐

    Excel解析工具POI.jar

    《Excel解析工具POI.jar详解》 在信息技术领域,数据处理是不可或缺的一部分,尤其是在大数据时代,Excel作为广泛使用的表格处理软件,其数据处理能力受到广大用户的青睐。然而,当面对大量Excel数据时,传统的手动...

    文件下载 用poi导出excel文档

    通过以上步骤,我们可以使用Apache POI和JSF技术实现一个简单的Excel文件导出功能。这种方式不仅易于理解和实现,而且可以很好地满足大多数应用场景的需求。此外,还可以进一步扩展该功能,例如增加样式设置、复杂...

    JAVA用poi解析doc、docx、slx、xlsx

    读取Excel文件的基本步骤如下: ```java // 对于.xls文件 FileInputStream fis = new FileInputStream("spreadsheet.xls"); HSSFWorkbook workbook = new HSSFWorkbook(fis); HSSFSheet sheet = workbook....

    Excel操作工具poi3.8

    《使用Apache POI 3.8进行Excel操作的详解》 Apache POI 是一个流行的开源项目,它允许Java开发者创建、修改和显示Microsoft Office格式的文件,尤其是Excel工作簿(.xlsx和.xls)。在给定的标题“Excel操作工具poi...

    SpringMvc+POI 处理Excel的导入操作

    这部分代码主要负责接收前端发送的文件,并调用`ImportExcelUtil`来解析Excel文件。具体实现取决于具体的业务逻辑。 ##### 4.3 InfoVo.java(将Excel转换为对象存储) 定义一个实体类来封装Excel文件中的数据,便于...

    poi导出excel2007

    使用`SXSSFWorkbook`创建一个新的Excel工作簿涉及到以下几个关键步骤: - 创建`SXSSFWorkbook`实例。 - 添加新的工作表(`SXSSFSheet`)。 - 设置单元格样式(`CellStyle`)。 - 写入数据到工作表。 #### 示例代码解析 ...

    poi的控制,poi导出excel详细介绍,有代码

    ### POI 控制 Excel 导出详解 #### 一、引言 Apache POI 是一个用于读写 Microsoft Office 格式文件(如 .xls、.xlsx、.doc、.ppt 等)的 Java API。其中,HSSF 和 XSSF 分别对应处理 .xls 和 .xlsx 文件。本篇...

    poi导出excel

    ### POI 导出 Excel 工具类详解 在日常工作中,经常需要将数据库中的数据导出为Excel格式,便于数据分析或进一步处理。Apache POI 是一个非常实用且功能强大的Java API,它允许程序员创建、修改Excel文件。下面将...

    poi解析excle

    通过以上步骤,可以实现使用POI解析Excel文件,并将其中的数据存储到Oracle数据库中。这在实际工作中是非常常见的需求,例如在进行数据批量导入时,可以大大提高工作效率。 需要注意的是,在实际开发过程中还需要...

    Java使用poi操作excel实例解析

    5. 写操作步骤详解:要创建一个Excel文件,并在其中添加数据,以下是主要步骤: - 创建工作簿对象`HSSFWorkbook`。 - 通过`createSheet`方法创建工作表。 - 使用`createRow`方法在工作表中创建行。 - 通过`...

    poi 导入导出excel表格

    【 poi 框架详解与应用】 Apache POI 是一个流行的开源Java库,它允许开发者创建、修改和显示Microsoft Office格式的文件,尤其是Excel工作簿(.xls 和 .xlsx 格式)。在Java环境中,POI 提供了丰富的API,用于读取...

    POI读取Excel

    2. **POI读取Excel的基本步骤**: - 引入Apache POI库:首先需要在项目中引入Apache POI的依赖。 - 创建Workbook对象:通过`WorkbookFactory.create()`方法,传入文件输入流或文件路径,创建Workbook对象,这代表...

    java poi导出大量数据到Excel

    通过这些API,开发者可以轻松地创建、修改和解析Excel文件,而无需安装Microsoft Office。 #### 三、导出大量数据到Excel的实现思路 当面对大量数据时,直接将所有数据一次性写入单个工作表可能会导致内存溢出等...

    poi 操作Excel

    ### 使用 POI 操作 Excel 的方法详解 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,包括 Excel、Word 和 PowerPoint 等格式。其中,对于 Excel 文件的操作主要依赖于两个核心...

    poi 生成pdf等

    Apache POI是一个流行的开源Java API,主要用于读取和写入Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。这里提到的“生成pdf等”,意味着除了PDF之外,可能还包括了HTML、图片或...

    poi.jar-3.10

    《Apache POI库3.10:Excel导入与导出详解》 Apache POI是一个流行的开源Java库,专用于处理Microsoft Office格式的文件,包括Word、PowerPoint和尤其重要的Excel。在标题“poi.jar-3.10”中,我们关注的是POI库的...

    使用itextpdf将excel转化为pdf + pdf加水印

    **Excel转PDF**的过程通常是通过解析Excel文件的内容并重新构建为PDF格式。TestForExcel2PDF测试类可能包含这样的逻辑:首先,加载Excel文件,然后使用itextpdf的API将工作表的内容转换为PDF页面,最后保存为PDF文件...

    Java读取Excel表格中的日期

    例如,在某些情况下,Excel中的日期格式可能是`yyyy-MM-dd`,但在读取时可能会被解析为`yy-MM-dd`形式,这会给后续的数据处理带来困扰。 #### 解决方案 针对上述问题,本文将介绍一种通过Java语言实现的解决方案,...

    POI_添加批注

    ### POI 添加批注知识点详解 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,支持 Excel、Word 和 PowerPoint 文件格式。本篇文章主要介绍如何利用 Apache POI 库在 Excel 工作...

Global site tag (gtag.js) - Google Analytics