poi3.8读取excel2007的一个实例
包的下载地址:http://poi.apache.org/download.html#POI-3.8beta3
在以前的Excel解析时候,我们通常需要编写Excel解析只能解析一种格式03版或者07版。现在POI3.5以后可以解析两种格式。我们知道在07的excel是基于xml格式的文件。
需要的包有:
poi-3.8-beta3-20110606.jar
poi-ooxml-3.8-beta3-20110606.jar
poi-ooxml-schemas-3.8-beta3-20110606.jar
xmlbeans-2.3.0.jar
上面的包要找齐还不是那么容易呵呵。
参考文章:
http://www.iteye.com/topic/316862
http://www.iteye.com/topic/834803
示例代码:
package com.test.util;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
* @author David.deng 2011-7-20 Version : 2.0 Class declare :
*/
public class ReadExcel
{
public void testPoiExcel2007(String strPath)
{
try
{
// 构造 XSSFWorkbook 对象,strPath 传入文件路径
XSSFWorkbook xwb = new XSSFWorkbook(strPath);
// 读取第一章表格内容
XSSFSheet sheet = xwb.getSheetAt(0);
// 定义 row、cell
XSSFRow row;
String cell;
// 循环输出表格中的内容
for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++)
{
row = sheet.getRow(i);
for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++)
{
// 通过 row.getCell(j).toString() 获取单元格内容,
cell = row.getCell(j).toString();
if(j == 2 | j==3)
System.out.print(cell + "\\t");
}
System.out.println("");
}
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String\[\] args)
{
String strPath = "D:\\\\tt\\\\made.xlsx";
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS");
TimeZone t = sdf.getTimeZone();
t.setRawOffset(0);
sdf.setTimeZone(t);
Long startTime = System.currentTimeMillis();
// 检测代码
try
{
ReadExcel er = new ReadExcel();
// 读取excel2007
er.testPoiExcel2007(strPath);
}
catch (Exception ex)
{
ex.printStackTrace();
}
Long endTime = System.currentTimeMillis();
System.out.println("用时:" + sdf.format(new Date(endTime - startTime)));
}
}