Java实现读取Excel多个Sheet数据

一个Excel中有多个数据Sheet,我们想读取每个Sheet数据内容是,可以使用Java的POI库来处理

因为代码中社交多业务,这里只贴出可执行较核心的代码部分。

Java实现读取Excel多个Sheet数据_第1张图片

import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * 处理方式比较简单,就是遍历传递进来的多个文件,在遍历每个文件的时候遍历多个Sheet,然后再遍历每行、每个单元格。
 * 如下方法中大家只看方法体即可。
 *
 * @author yangxin_ryan
 * @description excel处理相关工具类
 * @date 2020-08-06
 **/
public xxxxx(List files) {
	ResultData resultData = new ResultData<>();
	try {
		for(int i = 0; i < files.size(); i++) {
			XSSFWorkbook workbook = new XSSFWorkbook(files.get(i));
			for(int j = 0; j < workbook.getNumberOfSheets(); j++) {
				XSSFSheet xssfSheet = workbook.getSheetAt(j);
				if (xssfSheet == null) {
					continue;
				}
				for (int k = 0; k < xssfSheet.getLastRowNum(); k++) {
					List rowDataList = new ArrayList<>();
					XSSFRow aRow = xssfSheet.getRow(k);
					if (aRow == null) {
						continue;
					}
					System.out.println(xssfSheet.getRow(k).getLastCellNum());
					for (int l = 0; l < xssfSheet.getRow(k).getLastCellNum(); l++) {
						System.out.println(xssfSheet.getRow(k).getCell(l).toString());
						rowDataList.add(xssfSheet.getRow(k).getCell(l).toString());
					}
					resultData.tList.add((T)rowDataList);
				}
			}
		}
	} catch (Exception error) {
		error.printStackTrace();
	}
	return resultData;
}

 

你可能感兴趣的:(Java,Java,POI,Excel)