maven項目依賴jar包java
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.1</version> </dependency>
Java工具類 及main方法測試apache
package com.common.util.report; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; 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; public class ReadExcelXlsx { public static void main(String[] args) throws IOException { try { //傳入的參數依次是:文件的位置、不須要讀取的文件前幾行、須要讀取的文件每一行的前幾個單元格 List<List<String>> list = ReadExcelXlsx.getXlslValue("D://gzzl//P020171017348216851435.xlsx", 3,3); System.err.println(list.toString()); } catch (Exception e) { e.printStackTrace(); } } /** * @param path xlsx文件的位置 * @param breakNum 讀取文件的時候,不讀取文件的前幾行 * @param colNum 讀取文件的時候讀取文件的每一行的前幾列 * @return * @throws Exception */ public static List<List<String>> getXlslValue(String path,int breakNum,int colNum) throws Exception{ List<List<String>> allList = new ArrayList<List<String>>(); //存放整個excel InputStream is = new FileInputStream(path); XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is); // 獲取每個工做薄 for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) { XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet); if (xssfSheet == null) { continue; } for (int rowNum = 0; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {// 獲取當前工做薄的每一行 List<String> temp = new ArrayList<String>(); //每一行是一個list if(rowNum<breakNum) { //不讀取excel文件的前幾行 continue; } XSSFRow xssfRow = xssfSheet.getRow(rowNum); if (xssfRow != null) { for(int m= 0;m < colNum; m++) { //讀取每一行的每個單元格 temp.add(getValue(xssfRow.getCell(m))); //getCell爲讀取每個單元格,並加入list集合 } allList.add(temp); //將讀取的每一行的list 加入整個文檔的list allList中存放的是整個文檔數據 } } } return allList; } private static String getValue(XSSFCell xssfRow) { if (xssfRow.getCellType() == xssfRow.CELL_TYPE_BOOLEAN) { return String.valueOf(xssfRow.getBooleanCellValue()); } else if (xssfRow.getCellType() == xssfRow.CELL_TYPE_NUMERIC) { return String.valueOf(xssfRow.getNumericCellValue()); } else { return String.valueOf(xssfRow.getStringCellValue()); } } }