`
andy222241
  • 浏览: 6203 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

POI 3.14 读excel hssf && xssf

    博客分类:
  • java
阅读更多

first: poi 3.14 要求jdk1.6 或以上
       jar包去apache下载就可以了.
       另外,要完整运行需要xmlbeans 的jar包,  我下的是 xmlbeans-2.6.0.jar

 

附件里有 项目所用jar包,测试用的excel,及该项目


项目总共需要3个jar包,除jdk外:

     1 poi-3.14-xxxx.jar

      2 xmlbeans-2.6.jar

      3 poi-ooxml-3.14-xxx.jar

 

代码如下:

 

/**
 * 
 */
package helloWorld.com.cpic;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
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.ss.usermodel.WorkbookFactory;

/**
 * poi读excel文件内容
 * @author c_liuhaibin
 * @version 2016年6月16日
 */
public class ReadSXLSFile
{

	public static void main(String[] x) throws EncryptedDocumentException, InvalidFormatException, IOException
	{
		String fullFileName ="G:/360data/重要数据/桌面/aaa.xls"; //"G:/360data/重要数据/桌面/aaa.xlsx";

		
		ReadSXLSFile x1 = new ReadSXLSFile();
		List<List> list=x1.readFile(fullFileName);
		for (List inlist : list)
		{
			for (Object object : inlist)
			{
				System.out.println(object.toString());
			}
		}
	}

	/**
	 * read excel file 
	 * @param file Ful Name:include file path
	 * @return list
	 * @throws EncryptedDocumentException
	 * @throws InvalidFormatException
	 * @throws IOException
	 */
	public List<List> readFile(String fileName) throws EncryptedDocumentException, InvalidFormatException, IOException
	{
		//官网说这种方式可以兼容两种格式的excel,03 and 07 的.
		List<List> list = new ArrayList<List>();
		Workbook workbook = WorkbookFactory.create(new File(fileName));
		
		
		List<Object> inList = null;
		for (Sheet sheet : workbook)
		{
			System.out.println("sheetName:" + sheet.getSheetName());
			for (Row row : sheet)
			{
				inList = new ArrayList<Object>();
				for (Cell cell : row)
				{
					switch (cell.getCellType())
					{
					// 字符串
					case Cell.CELL_TYPE_STRING:
						System.out.print("字符串:"+cell.getRichStringCellValue().getString());
						//? or getStringCellValue?
						inList.add(cell.getRichStringCellValue());
						break;
					case Cell.CELL_TYPE_NUMERIC:
						// 日期
						if (DateUtil.isCellDateFormatted(cell))
						{
							inList.add(cell.getDateCellValue());
							SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
							System.out.print("日期:"+sdf.format(cell.getDateCellValue()));
						}
						// 数字
						else
						{
							inList.add(cell.getNumericCellValue());
							System.out.print("数字:"+cell.getNumericCellValue());
						}
						break;
					// 布尔
					case Cell.CELL_TYPE_BOOLEAN:
						inList.add(cell.getBooleanCellValue());
						System.out.print("布尔:"+cell.getBooleanCellValue());
						break;
					// 公式
					case Cell.CELL_TYPE_FORMULA:
						inList.add(cell.getCellFormula());
						System.out.print("公式:"+cell.getCellFormula());
						break;
					default:
						System.out.print("error ");
					}
				}
				System.out.println();
				list.add(inList);
			}
		}
		return list;
	}
}

 

 只写写helloWorld 当然没问题了,不过还有两个问题,希望高人出来指点一下:

1 cell.getRichStringCellValue() 跟 getStringCellValue 有啥区别?

2  为什么我测试用的excel的日期类型总是以数字格式读出来的? 

 

分享到:
评论

相关推荐

    poi3.14jar包

    这个"poi3.14jar包"是Apache POI的3.14版本,是一个Java库,允许开发者在Java应用程序中创建、读取和修改Microsoft Office格式的文件。在Java开发中,Apache POI常用于数据分析、自动化测试和数据导入导出等场景。 ...

    poi依赖jar包3.14

    1. **Excel处理**:POI的HSSF和XSSF模块分别用于处理旧版的BIFF8(.xls)格式和较新的OOXML(.xlsx)格式的Excel文件。开发者可以创建工作簿、工作表、单元格、公式等,并进行数据填充、样式设置、图表创建等操作。 ...

    poi-bin-3.14-20151223.tar.gz

    POI提供了HSSF(Horrible Spreadsheet Format)用于处理老版本的XLS格式,而XSSF(XML Spreadsheet Format)则用于处理XLSX格式。这个版本还可能包含对Excel 2014的支持,尽管Excel 2014这一版本实际并不存在,可能...

    jxl.jar 和 poi3.14.jar

    在这个场景中,我们关注的两个核心库是`jxl.jar`和`poi3.14.jar`,它们都是Java中用于Excel操作的重要库,但各有其特性和适用范围。 首先,`jxl.jar`是由JExcelAPI项目提供的一个开源库,它主要用于处理老版本的...

    poi-src-3.14-20160307.zip 【POI 3.14源码包src, source】

    1. **poi**:这是核心库,包含处理Excel文件(HSSF和XSSF)的主要代码,以及对Word文档(HWPF)和PowerPoint文件(HSLF和XSLF)的支持。 - HSSF:用于处理老版本的Excel(.xls)文件,基于低级事件模型。 - XSSF:...

    poi-bin-3.14

    3. **使用Apache POI读Excel**: 要读取Excel文件,首先需要创建一个`Workbook`对象,然后从该对象获取`Sheet`,再从`Sheet`获取`Row`,最后从`Row`获取`Cell`。可以使用`getCellType()`方法确定单元格类型,并通过...

    poi-3.14.rar

    这个"poi-3.14.rar"文件很可能是Apache POI库的一个版本3.14的压缩包,包含了Java库和其他相关资源,允许开发者在Java应用程序中读写Excel文件,以及其他Office文档。 Apache POI提供了以下主要功能: 1. **Excel...

    poi3.14版本jar包

    Apache POI项目通常由多个JAR文件组成,每个文件对应不同的功能模块,如处理Excel(HSSF和XSSF),Word(HWPF和XWPF)或PowerPoint(HSLF和XSLF)。3.14版本可能包括以下核心JAR文件: 1. **poi-3.14.jar**: 这是...

    java对Excel的jar包poi-3.15,poi-3.16,poi-3.17

    这个版本引入了对Excel 2007及以上版本的XSSF工作簿的支持,允许开发者处理.xlsx文件。它提供了API来创建、读取和修改单元格、行、列、公式等。此外,3.15版可能包含对旧版Excel (.xls)格式的支持,通过HSSF接口。...

    poi-bin-3.14 目前最新

    这个版本包含了处理Excel(HSSF和XSSF)、Word(HWPF和XWPF)以及PowerPoint(HSLF和XSLF)文件所需的类库。"bin"通常表示这是一个二进制分发版,包含编译好的Java类库,可以直接在Java环境中使用,无需进行编译。 ...

    POI-3.14.zip

    - **HSSF(Horrible Spreadsheet Format)**: 这是POI用来处理旧版BIFF格式(Excel 97-2007)的API。你可以创建新的工作簿、工作表,添加单元格,设置公式,以及读取和修改现有的Excel文件。 - **XSSF(XML ...

    poi-bin-3.14.zip 下载

    HSSF - 提供读写Microsoft Excel格式档案的功能。 XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。 HWPF - 提供读写Microsoft Word格式档案的功能。 HSLF - 提供读写Microsoft PowerPoint格式档案的功能...

    poi-bin-3.14.rar

    在给定的“poi-bin-3.14.rar”压缩包中,包含的是Apache POI 3.14版本的二进制文件,这使得Java开发者能够在程序中实现对Excel文件的读取、写入和分析功能。此版本的POI支持两种不同的Excel文件格式:97-2003使用的...

    POI解析xlsx

    对于 Excel 文件,POI 提供了对 .xls(HSSF - Hadoop POI API for Old Excel Format)和 .xlsx(XSSF - Hadoop POI API for New Excel Format)的支持。 2. **解析 .xlsx 文件**: `.xlsx` 文件是基于 Office Open...

    poi 3.8 3.9 3.10 3.15 3.17各种版本

    - 引入了对HSSF(Horizontally Stored File Format)和XSSF(XML Spreadsheet Format)的支持,分别用于处理老版的BIFF格式(.xls)和新的OOXML格式(.xlsx)的Excel文件。 - 提供了SS.usermodel接口,作为HSSF和...

    Java 操作Excel 的POI技术Jar包

    在Java POI项目中,主要包含两个关键组件:HSSF(Horrible Spreadsheet Format)用于处理.xls格式的Excel文件,而XSSF(XML Spreadsheet Format)则用于处理.xlsx格式的文件。 首先,我们要理解Java POI的基本使用...

    poi-execl导入导出所需jar包全

    它支持多种Microsoft Office格式,包括HSSF(Horrible Spreadsheet Format)用于处理旧版的.BIFF8 Excel文件,以及XSSF(XML Spreadsheet Format)用于处理.xlsx文件,这是Office 2007及更高版本中使用的Open XML...

    POI和dom4j需要的jar包

    在提供的文件列表中,`poi-3.14.jar`是POI的主要库,它包含了对HSSF和XSSF的支持。`poi-ooxml-schemas-3.14.jar`包含了Office Open XML格式的模式定义,这些定义用于解析和创建OOXML文件。而`poi-ooxml-3.14.jar`则...

Global site tag (gtag.js) - Google Analytics