声明:
java操作excel文件,常用 jxl 或 Apache poi 两种方式,
主要区别:jxl不支持.xlsx,而poi支持.xlsx、.xls
jxl依赖Jar包:jxl.jar
poi依赖Jar包:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>
5.0
.
0
</version>
</dependency>
该文章主要介绍poi方式(XSSFWorkbook),poi方式提供HSSFWorkbook和XSSFWorkbook两个实现类。
-
HSSFWorkbook : 这个类有读写.xls 格式和写入Microsoft Excel文件的方法。它与微软Office97-2003版本兼容。
-
XSSFWorkbook : 这个类有读写Microsoft Excel和OpenOffice的XML文件的格式.xls或.xlsx的方法。它与MS-Office版本2007或更高版本兼容。
简单来讲,区别在于HSSFWorkbook是针对.xls文件,XSSFWorkbook是针对.xslx文件。
基本概念介绍:
一个工作簿,可包含工作表,一个工作表可有多个行,一个行可有多个单元格
工作簿 ----------XSSFWorkbook
工作表 ----------XSSFSheet
行---------------XSSFRow
单元格-----------XSSFCell
代码实现
public static void excelData(String filePath) {
try {
//创建工作簿 filePath="D:\\TEST\\temp\\abc.xlsx"
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(filePath));
System.out.println("获取工作薄对象:" + xssfWorkbook);
//读取第一个工作表
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
System.out.println("工作表对象:" + sheet);
//获取最后一行的num,即总行数。此处从0开始计数
int maxRow = sheet.getLastRowNum();
System.out.println("总行数:" + maxRow);
for (int row = 0; row <= maxRow; row++) {
//获取最后单元格num,即总单元格数 ***注意:此处从1开始计数***
int maxRol = sheet.getRow(row).getLastCellNum();
System.out.println("第" + row + "行,数据如下:");
for (int rol = 0; rol < maxRol; rol++) {
System.out.print(sheet.getRow(row).getCell(rol) + " ");
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}