Java读取Excel表格信息。

本文章来自JavaEye

 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)
http://www.javaeye.com/forums 1.20 Java 操作 Excel (读)
第 108 / 223 页
// 打开表格文件,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);
http://www.javaeye.com/forums 1.20 Java 操作 Excel (读)
第 109 / 223 页
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则更适合读取数据,不需要控制太多的格式,只是简单的读取。

你可能感兴趣的:(java,Date,exception,String,timezone,Excel)