引入Maven依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
第一种:根据sheet名称获取指定sheet内容
pulic static void getExcelData(String filePath, String sheetName){
XSSFWorkbook workbook = null; //用来解析Excel表
XSSFSheet sheet = null; // sheet页面内容
XSSFRow row = null; //每行的内容
XSSFCell cell = null; //每列的内容
try {
workbook = new XSSFWorkbook(new FileInputStream(filePath));
} catch (IOException e) {
e.printStackTrace();
}
//根据Excel的sheet名称获取当前sheet内容
sheet = workbook.getSheet(sheetName);
if(sheet != null){
//遍历每行元素
for(int i = 0; i < sheet.getPhysicalNumberOfRows(); i++){
row = sheet.getRow(i);
//遍历每列元素
for(int j = 0; j < row.getPhysicalNumberOfCell(); j++)
String row_cell_data = row.getCell(j).toString()
}
}
}
第二种:遍历sheet
pulic static void getExcelData(String filePath){
XSSFWorkbook workbook = null; //用来解析Excel表
XSSFSheet sheet = null; // sheet页面内容
XSSFRow row = null; //每行的内容
XSSFCell cell = null; //每列的内容
String sheetName = null; //获取sheetName名称
try {
workbook = new XSSFWorkbook(new FileInputStream(filePath));
} catch (IOException e) {
e.printStackTrace();
}
//根据Excel的sheet名称获取当前sheet内容
for(int index = 0; index < workbook.getNumberOfSheets(); index++){
sheetName = workbook.getSheetAt(index).getSheetName();
sheet = workbook.getSheet(sheetName);
if(sheet != null){
//遍历每行元素
for(int i = 0; i < sheet.getPhysicalNumberOfRows(); i++){
row = sheet.getRow(i);
//遍历每列元素
for(int j = 0; j < row.getPhysicalNumberOfCell(); j++)
String row_cell_data = row.getCell(j).toString()
}
}
}
}
题后话
第二种遍历sheet的时候,核心还是去根据sheetName去获取sheet页面内容,通过下标去遍历sheet后获取该sheet的名称,再按照第一种方法去实现,这是我自己测试过可行的一种
(二)Java将数据写入Excel: