java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)
Java 解析Excel(xls、xlsx兩種格式)
一、環(huán)境
JDK 1.8
二、JAR
1.commons-collections4-4.1.jar
2.poi-3.9-20121203.jar
3.poi-examples-3.9-20121203.jar
4.poi-excelant-3.9-20121203.jar
5.poi-ooxml-3.9-20121203.jar
6.poi-ooxml-schemas-3.9-20121203.jar
7.poi-scratchpad-3.9-20121203.jar
8.xmlbeans-2.3.0.jar
注意:jar版本為3.9
三、主要API
1.import org.apache.poi.ss.usermodel.Workbook,對(duì)應(yīng)Excel文檔;
2.import org.apache.poi.hssf.usermodel.HSSFWorkbook,對(duì)應(yīng)xls格式的Excel文檔;
3.import org.apache.poi.xssf.usermodel.XSSFWorkbook,對(duì)應(yīng)xlsx格式的Excel文檔;
4.import org.apache.poi.ss.usermodel.Sheet,對(duì)應(yīng)Excel文檔中的一個(gè)sheet;
5.import org.apache.poi.ss.usermodel.Row,對(duì)應(yīng)一個(gè)sheet中的一行;
6.import org.apache.poi.ss.usermodel.Cell,對(duì)應(yīng)一個(gè)單元格。
四、示例
packagepoi;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.LinkedHashMap;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apache.poi.ss.usermodel.Cell;importorg.apache.poi.ss.usermodel.DateUtil;importorg.apache.poi.ss.usermodel.Row;importorg.apache.poi.ss.usermodel.Sheet;importorg.apache.poi.ss.usermodel.Workbook;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;public classTestpoi {public static voidmain(String[] args) {
Workbook wb=null;
Sheet sheet= null;
Row row= null;
List> list = null;
String cellData= null;
String filePath= "D:\\test.xlsx";
String columns[]= {"name","age","score"};
wb=readExcel(filePath);if(wb != null){//用來(lái)存放表中數(shù)據(jù)
list = new ArrayList>();//獲取第一個(gè)sheet
sheet = wb.getSheetAt(0);//獲取最大行數(shù)
int rownum =sheet.getPhysicalNumberOfRows();//獲取第一行
row = sheet.getRow(0);//獲取最大列數(shù)
int colnum =row.getPhysicalNumberOfCells();for (int i = 1; i
Map map = new LinkedHashMap();
row=sheet.getRow(i);if(row !=null){for (int j=0;j
cellData=(String) getCellFormatValue(row.getCell(j));
map.put(columns[j], cellData);
}
}else{break;
}
list.add(map);
}
}//遍歷解析出來(lái)的list
for (Mapmap : list) {for (Entryentry : map.entrySet()) {
System.out.print(entry.getKey()+":"+entry.getValue()+",");
}
System.out.println();
}
}//讀取excel
public staticWorkbook readExcel(String filePath){
Workbook wb= null;if(filePath==null){return null;
}
String extString= filePath.substring(filePath.lastIndexOf("."));
InputStream is= null;try{
is= newFileInputStream(filePath);if(".xls".equals(extString)){return wb = newHSSFWorkbook(is);
}else if(".xlsx".equals(extString)){return wb = newXSSFWorkbook(is);
}else{return wb = null;
}
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}returnwb;
}public staticObject getCellFormatValue(Cell cell){
Object cellValue= null;if(cell!=null){//判斷cell類型
switch(cell.getCellType()){caseCell.CELL_TYPE_NUMERIC:{
cellValue=String.valueOf(cell.getNumericCellValue());break;
}caseCell.CELL_TYPE_FORMULA:{//判斷cell是否為日期格式
if(DateUtil.isCellDateFormatted(cell)){//轉(zhuǎn)換為日期格式Y(jié)YYY-mm-dd
cellValue =cell.getDateCellValue();
}else{//數(shù)字
cellValue =String.valueOf(cell.getNumericCellValue());
}break;
}caseCell.CELL_TYPE_STRING:{
cellValue=cell.getRichStringCellValue().getString();break;
}default:
cellValue= "";
}
}else{
cellValue= "";
}returncellValue;
}
}
總結(jié)
以上是生活随笔為你收集整理的java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java web 播放音频_使用Java
- 下一篇: java编译的语句_在Java语言中,下