1. 创建Maven项目在pom文件中添加依赖
<dependencies>
<!-- 旧的 .xls -->
<!--<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>-->
<!-- 新的 .xlsx -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
</dependencies>
2. 编写代码
import java.io.FileInputStream;
import java.io.IOException;
import java.util.*;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class PoiTest {
public static void main(String[] args) throws IOException {
//读取Excel文件
Workbook workbook = getWorkbook("src/main/resources/test.xlsx");
//读取Sheet
Sheet sheet = getSheet(workbook);
//获取Excel内容
List<Map<Integer,String>> dpiList = getDpiList(sheet);
//测试用,遍历Excel内容
for (Map<Integer,String> colMap : dpiList) {
for (Map.Entry<Integer,String> entry : colMap.entrySet()) {
System.out.print(entry.getValue() + '\t');
}
System.out.println();
}
}
public static Workbook getWorkbook(String filePath) throws IOException {
FileInputStream is = new FileInputStream(filePath);
XSSFWorkbook workbook = new XSSFWorkbook(is);
workbook.close();
return workbook;
}
public static Sheet getSheet(Workbook workbook) {
//获取第一页内容
Sheet sheet = workbook.getSheetAt(0);
return sheet;
}
public static List<Map<Integer,String>> getDpiList(Sheet sheet) {
List<Map<Integer,String>> dpiRuleList = new ArrayList<Map<Integer, String>>();
Row row = sheet.getRow(0);
//获取最大行数
int rownum = sheet.getPhysicalNumberOfRows();
//获取最大列数
int colnum = row.getPhysicalNumberOfCells();
for (int i = 0; i < rownum; i++) {
//获取第i行数据
row = sheet.getRow(i);
HashMap<Integer, String> colMap = new HashMap<Integer, String>();
for (int j = 0; j < colnum; j++) {
Cell cell = row.getCell(j);
String cellText = cell.getStringCellValue();
colMap.put(j, cellText);
}
dpiRuleList.add(colMap);
}
return dpiRuleList;
}
}