- 浏览: 4785 次
- 性别:
- 来自: 北京
文章分类
最新评论
poi-3.7-20101029.jar,下载地址:http://download.csdn.net/detail/evangel_z/4107089
geronimo-stax-api_1.0_spec-1.0.jar,下载地址:http://download.csdn.net/detail/evangel_z/4107083
xmlbeans-2.3.0.jar,下载地址:http://download.csdn.net/detail/evangel_z/4107140
poi-ooxml-3.7-20101029.jar,下载地址:http://download.csdn.net/detail/evangel_z/4107145
poi-ooxml-schemas-3.7-20101029.jar,下载地址:http://download.csdn.net/detail/evangel_z/4108997
以上5个jar,就可读取Excel 2003;
----------------------------------------------------------------------------------------------------------------------------------------
读取Excel 2007,请加上dom4j-1.6.1.jar,下载地址:http://download.csdn.net/detail/evangel_z/6739735
----------------------------------------------------------------------------------------------------------------------------------------
poi-3.6-20091214.jar,下载地址:http://download.csdn.net/detail/evangel_z/3895051
poi-contrib-3.6-20091214.jar,下载地址:http://download.csdn.net/detail/evangel_z/4107197
poi-scratch.6-20091214.jar,下载地址:http://download.csdn.net/detail/evangel_z/4107204
读取excel 文件的 java 代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.PushbackInputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.LinkedList;
import java.util.List;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
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;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class read_Excel{
/**
* 对外提供读取excel 的方法
*/
public static List<List<Object>> readExcel(File file) throws IOException{
List<List<Object>> list = new LinkedList<List<Object>>();
InputStream inp;
try {
inp = new FileInputStream(file);
if(! inp.markSupported()) {
inp = new PushbackInputStream(inp,;
}
try {
if(POIFSFileSystem.hasPOIFSHeader(inp)) {
list = read2003Excel(file);
}
if(POIXMLDocument.hasOOXMLHeader(inp)) {
list = read2007Excel(file);
}
} catch (IOException e) {
throw new IOException("不支持的文件类型");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return list;
}
/**
* 读取 office 2003 excel
*
* @throws IOException
* @throws FileNotFoundException
*/
private static List<List<Object>> read2003Excel(File file)
throws IOException {
List<List<Object>> list = new LinkedList<List<Object>>();
HSSFWorkbook hwb = new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet = hwb.getSheetAt(0);
Object value = null;
HSSFRow row = null;
HSSFCell cell = null;
System.out.println("读取office 2003 excel内容如下:");
for (int i = sheet.getFirstRowNum(); i <= sheet
.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
if (row == null) {
continue;
}
List<Object> linked = new LinkedList<Object>();
for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
cell = row.getCell(j);
if (cell == null) {
continue;
}
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字符
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING:
// System.out.println(i + "行" + j + " 列 is String type");
value = cell.getStringCellValue();
System.out.print(" " + value + " ");
break;
case XSSFCell.CELL_TYPE_NUMERIC:
// System.out.println(i + "行" + j
// + " 列 is Number type ; DateFormt:"
// + cell.getCellStyle().getDataFormatString());
if ("@".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else if ("General".equals(cell.getCellStyle()
.getDataFormatString())) {
value = nf.format(cell.getNumericCellValue());
} else {
value = sdf.format(HSSFDateUtil.getJavaDate(cell
.getNumericCellValue()));
}
System.out.print(" " + value + " ");
break;
case XSSFCell.CELL_TYPE_BOOLEAN:
// System.out.println(i + "行" + j + " 列 is Boolean type");
value = cell.getBooleanCellValue();
System.out.print(" " + value + " ");
break;
case XSSFCell.CELL_TYPE_BLANK:
// System.out.println(i + "行" + j + " 列 is Blank type");
value = "";
System.out.print(" " + value + " ");
break;
default:
// System.out.println(i + "行" + j + " 列 is default type");
value = cell.toString();
System.out.print(" " + value + " ");
}
if (value == null || "".equals(value)) {
continue;
}
linked.add(value);
}
System.out.println("");
list.add(linked);
}
return list;
}
/**
* 读取Office 2007 excel
*/
private static List<List<Object>> read2007Excel(File file)
throws IOException {
List<List<Object>> list = new LinkedList<List<Object>>();
// String path = System.getProperty("user.dir") +
// System.getProperty("file.separator")+"dd.xlsx";
// System.out.println("路径:"+path);
// 构造 XSSFWorkbook 对象,strPath 传入文件路径
XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(file));
// 读取第一章表格内容
XSSFSheet sheet = xwb.getSheetAt(0);
Object value = null;
XSSFRow row = null;
XSSFCell cell = null;
System.out.println("读取office 2007 excel内容如下:");
for (int i = sheet.getFirstRowNum(); i <= sheet
.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
if (row == null) {
continue;
}
List<Object> linked = new LinkedList<Object>();
for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
cell = row.getCell(j);
if (cell == null) {
continue;
}
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字符
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING:
// System.out.println(i + "行" + j + " 列 is String type");
value = cell.getStringCellValue();
System.out.print(" " + value + " ");
break;
case XSSFCell.CELL_TYPE_NUMERIC:
// System.out.println(i + "行" + j
// + " 列 is Number type ; DateFormt:"
// + cell.getCellStyle().getDataFormatString());
if ("@".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else if ("General".equals(cell.getCellStyle()
.getDataFormatString())) {
value = nf.format(cell.getNumericCellValue());
} else {
value = sdf.format(HSSFDateUtil.getJavaDate(cell
.getNumericCellValue()));
}
System.out.print(" " + value + " ");
break;
case XSSFCell.CELL_TYPE_BOOLEAN:
// System.out.println(i + "行" + j + " 列 is Boolean type");
value = cell.getBooleanCellValue();
System.out.print(" " + value + " ");
break;
case XSSFCell.CELL_TYPE_BLANK:
// System.out.println(i + "行" + j + " 列 is Blank type");
value = "";
// System.out.println(value);
break;
default:
// System.out.println(i + "行" + j + " 列 is default type");
value = cell.toString();
System.out.print(" " + value + " ");
}
if (value == null || "".equals(value)) {
continue;
}
linked.add(value);
}
System.out.println("");
list.add(linked);
}
return list;
}
}
发表评论
-
struts2 + freemark + itext 导出pdf(基于模板方式)
2015-12-11 14:52 0生成静态页面方法: private void statHtm ... -
jxl 读取excel
2015-12-11 14:50 522import java.io.File; import jav ... -
easyui 查看隐藏字段的值
2015-12-11 14:48 1199通过列表查看按钮查看隐藏信息,需要用到索引值 index, ... -
poi 导出excel
2015-12-11 14:45 670工具类: import java.lang.reflect. ... -
ajax Session失效如何跳转到登录页面
2015-12-11 14:41 579一、建立拦截器 package com.xxx.planea ...
相关推荐
Java POI读取Office excel (2003,2007)及相关jar包。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
这里我们将详细讲解如何使用Java POI读取Office 2003的Excel文件,并介绍相关的知识点。 1. **Java POI 概述** Java POI 提供了HSSF(Horrible Spreadsheet Format)API来处理Excel 2003及更早版本的文件。HSSF...
本文将详细介绍如何使用Apache POI库来读取Excel 2007及以上版本(即XLSX格式)的文件,并提供所需的jar包信息。 首先,要使用Apache POI读取XLSX文件,你需要确保引入了正确的依赖。Apache POI项目提供了多个组件...
下面我们将详细探讨如何使用Java POI来读取不同版本的Office文件,以及如何导入所需的jar包。 首先,我们需要理解Java POI的主要组件: 1. **HSSF (Horrible Spreadsheet Format)**:这是针对老版的Microsoft ...
5. **读取Excel数据**:使用POI读取Excel数据的基本步骤包括: - 加载工作簿:创建HSSFWorkbook对象(.xls)或XSSFWorkbook对象(.xlsx)。 - 访问工作表:通过工作簿对象获取Sheet对象,代表Excel中的工作表。 -...
Apache POI是一个开源项目,提供了丰富的API,使得Java开发者能够轻松地与MS Office格式交互,包括XLS(Excel 97-2003)和XLSX(Excel 2007及以后的版本)。 标题中的"java通过poi操作excel jar包"指的是使用Apache...
标题提到的“poi读取Excel用到的jar包”指的是在Java项目中使用POI库进行Excel操作所需引入的依赖文件。这些jar包在描述中给出,包括了以下几个: 1. poi-ooxml-schemas-3.8-beta5-20111217.jar:这个文件包含了...
Java中的Apache POI库是一个强大的工具,用于读取和写入Microsoft Office格式的文件,特别是Excel的XLS和XLSX格式。在这个5.2.1版本中,POI提供了对Excel电子表格的强大支持,包括读取数据、修改内容、创建新工作簿...
标题中的"poi读取excel的jar包"指的是Apache POI库的一个版本,它包含了读取Excel 2007文件所需的类和方法。在Java程序中,引入这个jar包后,开发者可以编写代码来处理.xlsx文件,无论是读取数据、解析工作表还是...
在这个场景中,我们关注的是如何使用POI库来导入和导出Excel 2003及2007版本的数据。以下是对POI库以及相关jar包的详细解释: 1. **Apache POI**:这是由Apache软件基金会开发的一个Java库,它允许Java应用程序创建...
它提供了对Office Open XML文件格式的理解,使得POI能够处理Excel 2007及以后版本的.xlsx文件。 2. **xmlbeans-2.3.0.jar**:XMLBeans是一个Java库,它将XML文档映射到Java对象上。在Java POI中,XMLBeans用于解析...
标题提到的"poi读取excel所需jar包"主要涉及以下组件: 1. **poi-3.8-20120326.jar**:这是Apache POI的主要库,包含了处理Excel(HSSF和XSSF)以及其他Office文档的核心功能。版本3.8是一个较早的版本,但仍然能够...
Java中的Apache POI库是处理Microsoft Office文档的强大工具,尤其在Excel操作方面。它允许开发者在Java应用程序中创建、修改和读取Excel文件。在进行批量导入和导出Excel数据时,Apache POI是一个非常实用的选择。...
《PoIjar包在Excel2003与Excel2007中的应用详解》 在信息化时代,数据处理和分析已经成为各行各业不可或缺的一部分,而Excel作为其中的翘楚,以其强大的功能和易用性赢得了广大用户的青睐。对于Java开发者来说,...
4. **使用Apache POI读取Excel**: - 创建`Workbook`对象:这是处理Excel文件的核心,可以是`HSSFWorkbook`(处理.xls文件)或`XSSFWorkbook`(处理.xlsx文件)。 - 打开`Sheet`:工作簿内包含了多个工作表(Sheet...
本文将深入探讨如何使用Java POI读取2003和2007版的Excel文件。 首先,你需要在项目中引入POI相关的jar包。通常,这包括`poi-ooxml-schemas`、`poi-ooxml`、`poi`这三个核心库。这些库包含了处理Excel文件所需的...
- **添加依赖**: 首先,你需要将Apache POI相关的jar包添加到你的项目类路径中。在你的描述中提到的"ApachePoiAllJar"应该包含了所有必要的jar文件,包括poi、poi-ooxml、poi-ooxml-schemas、poi-scratchpad等。 - *...
本篇文章将详细探讨使用Apache POI读取Excel文件所需的jar包,以及如何在Java项目中集成和使用这些库。 首先,Apache POI的核心jar包是poi-ooxml-schemas和poi-ooxml。这两个jar包提供了对Excel文件的XML Schema...
1. **jxl.jar**: 这是JExcelAPI的库文件,一个早期的Java库,用于处理Excel 97-2003格式的.xls文件。它支持读取、写入和修改Excel文件,但不支持较新的.xlsx格式。由于它的轻量级特性,对于只需要处理.xls文件的...
以上是对Java使用Apache POI库处理Excel文件所需jar包及相关知识点的详细解释。在实际开发中,确保使用最新稳定版本,并结合官方文档和示例代码,可以更高效地利用POI实现各种复杂的Excel操作。