package com.**.**.**.common.utils;importorg.apache.poi.xssf.usermodel.XSSFCell;importorg.apache.poi.xssf.usermodel.XSSFRow;importorg.apache.poi.xssf.usermodel.XSSFSheet;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;import java.io.*;/***@authorzyydd
* @date 2019/3/15 15:00*/
public classExcelUtils {private static final Logger LOGGER = LoggerFactory.getLogger(ExcelUtils.class);public static voidmain(String[] args) {
String[][] rowArray= getArrayFromXLSX("D://test.xlsx", 0);for(String[] row : rowArray) {for(String cell : row) {
System.out.print(cell+ "\t");
}
System.out.println();
}
}/*** 获取xlsx文件内容某个sheet(从0开始)的内容,以二维数组形式返回
*
*@paramfileAbsolutePath xlsx文件的绝对路径
*@returnxlsx文件的文本内容*/
public static String[][] getArrayFromXLSX(String fileAbsolutePath, intbookIndex) {
InputStream inputStream= null;try{
inputStream= new FileInputStream(newFile(fileAbsolutePath));
XSSFWorkbook book= newXSSFWorkbook(inputStream);if (bookIndex >=book.getNumberOfSheets()) {
LOGGER.error("getArrayFromXLSX error: bookIndex={} is to large! ", bookIndex);return null;
}
XSSFSheet sheet=book.getSheetAt(bookIndex);int rowNum = sheet.getLastRowNum() + 1;int coloumNum = sheet.getRow(0).getPhysicalNumberOfCells();
String[][] contents= newString[rowNum][coloumNum];for (int j = 0; j < rowNum; j++) {
XSSFRow row=sheet.getRow(j);if (row != null) {for (int k = 0; k < row.getLastCellNum(); k++) {
contents[j][k]=getXCellFormatValue(row.getCell(k));
}
}
}returncontents;
}catch(FileNotFoundException fe) {
LOGGER.error("getArrayFromXLSX error: FileNotFoundException", fe);
}catch(IOException ie) {
LOGGER.error("getArrayFromXLSX error: IOException", ie);
}finally{if (inputStream != null) {try{
inputStream.close();
}catch(Exception e) {
LOGGER.error("getArrayFromXLSX close Exception", e);
}
}
}return null;
}private staticString getXCellFormatValue(XSSFCell cell) {
String cellValue= "";if (null !=cell) {switch(cell.getCellType()) {caseXSSFCell.CELL_TYPE_STRING:
cellValue=cell.getRichStringCellValue().getString();break;caseXSSFCell.CELL_TYPE_NUMERIC:
cellValue= (new Double(cell.getNumericCellValue())).intValue() + "";break;default:
cellValue= " ";
}
}else{
cellValue= "";
}returncellValue;
}
}