一个项目要求读Excel表格,于是Google、baidu查了查,看到不少关于Java读Excel到文章,讲解的比较详细。今天开博,第一篇文章,对Java读Excel进行一下总结,内容全都是来自网络,我只是做了一些修改、总结。经过挑选决定采用poi和fastexcel。
1、poi读取Excel (poi-3.2-FINAL-20081019)
// 构造 HSSFWorkbook 对象,strPath 传入文件路径
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(strPath));
// 读取文件中的第一张表格
HSSFSheet sheet = wb.getSheetAt(0);
// 定义 row、cell
HSSFRow row;
// HSSFCell cell;
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();
System.out.print(cell + "\t");
}
System.out.println("");
}
2、fastexcel读Excel (fastexcel-0.2-2009-01-16)
// 打开表格文件,strPath设置文件所在路径
Workbook workBook = FastExcel.createReadableWorkbook(new File(strPath));
workBook.open();
// 基于事件的读取
// workBook.getSheet(0, new SheetReadAdapter() {
// public void onCell(int row, int col, String content) {
// System.out.println(row + "," + col + "," + content);
// }
// });
// 基本的读取
// 操作第一张表格
Sheet s = workBook.getSheet(0);
// 设置 row、cell
String[] row;
String cell;
// 循环输出表格内容
for (int i = s.getFirstRow(); i < s.getLastRow(); i++) {
row = s.getRow(i);
for (int j = s.getFirstColumn(); j < s.getLastColumn(); j++) {
cell = s.getCell(i, j);
System.out.print(cell + "\t");
}
System.out.println("");
}
// 关闭连接
workBook.close();
3、简单测试读取速度 (Intel(R) Pentium(R) Dual T2330 @ 1.60GHz 内存:2G)
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS");
TimeZone t = sdf.getTimeZone();
t.setRawOffset(0);
sdf.setTimeZone(t);
Long startTime = System.currentTimeMillis();
// 检测代码
String fileName = "F:\\我的文档\\专业实训\\07信管缴费代码.xls";
try {
// 性能更好,读取更快
FastexcelReadExcel fre = new FastexcelReadExcel();
fre.testFastExcel(fileName);
} catch (Exception ex) {
Logger.getLogger(FastexcelReadExcel.class.getName()).log(Level.SEVERE, null, ex);
}
Long endTime = System.currentTimeMillis();
System.out.println("用时:" + sdf.format(new Date(endTime - startTime)));
startTime = System.currentTimeMillis();
// 检测代码
try {
PoiReadExcel er = new PoiReadExcel();
er.testPoiExcel(fileName);
} catch (Exception ex) {
Logger.getLogger(FastexcelReadExcel.class.getName()).log(Level.SEVERE, null, ex);
}
endTime = System.currentTimeMillis();
System.out.println("用时:" + sdf.format(new Date(endTime - startTime)));
fastexcel 读取用时:656ms,poi 读取用时:735ms。
Excel 表格 为 80行8列。
总结:poi是非常强大的,可以完成设置各种格式,但是相对的也可能更慢一些(猜测),fastexcel则更适合读取数据,不需要控制太多的格式,只是简单的读取。
两者的具体实现没有过深入的了解过。
对于读取Excel内容,导入数据库中,优先选用fasteexcel。
对于要求更高的格式控制,优先选用poi。
另外还有JXL等其他操作Excel的开源项目,没有使用过,感觉有以上两者已经足够。
对于office2007格式还没有研究,等待……
分享到:
相关推荐
详细介绍Java操作Excel,包括对Excel的读、写、更新等操作,并附加例子.
Java操作Excel.rar java Excel 操作Excel
java 导入Excel 文件,兼容Excel 2003(后缀名:xls)及 2007(后缀名:xlsx)的文件,同时还支持csv格式的文件
JAVA读/写EXCEL表格以及其实例,运用时只要先导入jxl.zip开发包即可
java poi excel操作demo 支持xls和xlsx两个格式的excel文件的读写操作。读取模式包含用户模式和事件驱动模式 ,事件驱动模式能够支持大数据量的读操作,写操作xlsx使用sxssf方式支持大数据量的写入操作。 demo 基于...
附件是java poi 3.17的lib库及其依赖库,全部下载引用后,可以进行excel的读写操作,无需引用其他lib库。poi-3.17适用于jdk1.7。 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft ...
Java操作Excel常用的两种组件,分别是Apache的POI和阿里巴巴的EasyExcel。本文主要概括了这两种方法的读和写操作,还附上了许多的实示例,大部分来自于官网。
通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最...
jxl的excel读写操作 java操作excel的读写。
解开压缩包有两个文件夹: 1 jexcelapi文件夹是我从网上下载的,由于能力有限,我只看懂了其中一小部分其中jar包在根目录...工程目录下excel/src/help中read.java是读excel文件例子,write.java是写excel文件例子
利用Java swing 对csv和excel文件进行读写;并且可以同时读取5个文件的数量;通过关键字配置来读文件,还有就是通过POI CSVWriter等类的使用来对excel和csv等文件进行操作
在做项目的时候,发现使用POI无法解析以csv文件结尾的文件,虽然csv文件能用Excel打开,但是csv文件没有像Excel一样有规定的电子表格形式,故使用POI无法解析csv文件,在网上找了一下,发现java有提供java csv文件来...
poi对excel操作,包括生成excel,读excel,从数据库中读取数据产生excel等
Java利用JXL读和写操作Excel表格示例代码,可直接导入MyEclipse使用
web项目中需要有将数据导出excel的操作需求 使用html格式导出方法,但在导出时,根据最大行数重新建立新的excel文件; 数据从数据库取出使用纯jdbc方式读数据,边读边向文件中写; 待所有数据写完,将各个小excel...
xlsx文件数据量太大,用普通的读法会报内存溢出错误,所以用官网提供的方法,一条一条的读取大excel文件,本例子从这点出发,组装excel里读取的单条数据为list,在根据需求操作list,即单条读取,单条操作,下载下来...
java读写excel源码pyexcel - 让你专注于数据,而不是文件格式 支持项目 如果贵公司已将 pyexcel 及其组件嵌入到创收产品中,请在 github 上支持我,或维护该项目并进一步开发。 如果您是个人,也欢迎您支持我,无论...
自己封装的java 读Excel的jar包,省去了传统的poi的复杂操作,用一种类似于Hibernate的注解形式,实现Excel数据直接转list对象
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 二、 HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取...
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。...Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。