java poi 解析excel_Java通过poi读取excel中文件

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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值