java excel解析视频教程_java解析Excel(xls、xlsx两种格式)
一、需要導入的jar
1.commons-collections4-4.1.jar
2.poi-3.17-beta1.jar
3.poi-ooxml-3.17-beta1.jar
4.poi-ooxml-schemas-3.17-beta1.jar
5.xmlbeans-2.6.0.jar
二、主要API,了解springcloud架構可以加求求:三五三六二四七二五九
1.import org.apache.poi.ss.usermodel.Workbook,對應Excel文檔;
2.import org.apache.poi.hssf.usermodel.HSSFWorkbook,對應xls格式的Excel文檔;
3.import org.apache.poi.xssf.usermodel.XSSFWorkbook,對應xlsx格式的Excel文檔;
4.import org.apache.poi.ss.usermodel.Sheet,對應Excel文檔中的一個sheet;
5.import org.apache.poi.ss.usermodel.Row,對應一個sheet中的一行;
6.import org.apache.poi.ss.usermodel.Cell,對應一個單元格。
三、代碼如下package?poi;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.IOException;
import?java.io.InputStream;
import?java.util.ArrayList;
import?java.util.LinkedHashMap;
import?java.util.List;
import?java.util.Map;
import?java.util.Map.Entry;
import?org.apache.poi.hssf.usermodel.HSSFWorkbook;
import?org.apache.poi.ss.usermodel.Cell;
import?org.apache.poi.ss.usermodel.DateUtil;
import?org.apache.poi.ss.usermodel.Row;
import?org.apache.poi.ss.usermodel.Sheet;
import?org.apache.poi.ss.usermodel.Workbook;
import?org.apache.poi.xssf.usermodel.XSSFWorkbook;
public?class?Testpoi?{
public?static?void?main(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){
//用來存放表中數據
list?=?new?ArrayList>();
//獲取第一個sheet
sheet?=?wb.getSheetAt(0);
//獲取最大行數
int?rownum?=?sheet.getPhysicalNumberOfRows();
//獲取第一行
row?=?sheet.getRow(0);
//獲取最大列數
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);
}
}
//遍歷解析出來的list
for?(Map?map?:?list)?{
for?(Entry?entry?:?map.entrySet())?{
System.out.print(entry.getKey()+":"+entry.getValue()+",");
}
System.out.println();
}
}
//讀取excel
public?static?Workbook?readExcel(String?filePath){
Workbook?wb?=?null;
if(filePath==null){
return?null;
}
String?extString?=?filePath.substring(filePath.lastIndexOf("."));
InputStream?is?=?null;
try?{
is?=?new?FileInputStream(filePath);
if(".xls".equals(extString)){
return?wb?=?new?HSSFWorkbook(is);
}else?if(".xlsx".equals(extString)){
return?wb?=?new?XSSFWorkbook(is);
}else{
return?wb?=?null;
}
}?catch?(FileNotFoundException?e)?{
e.printStackTrace();
}?catch?(IOException?e)?{
e.printStackTrace();
}
return?wb;
}
public?static?Object?getCellFormatValue(Cell?cell){
Object?cellValue?=?null;
if(cell!=null){
//判斷cell類型
switch(cell.getCellType()){
case?Cell.CELL_TYPE_NUMERIC:{
cellValue?=?String.valueOf(cell.getNumericCellValue());
break;
}
case?Cell.CELL_TYPE_FORMULA:{
//判斷cell是否為日期格式
if(DateUtil.isCellDateFormatted(cell)){
//轉換為日期格式YYYY-mm-dd
cellValue?=?cell.getDateCellValue();
}else{
//數字
cellValue?=?String.valueOf(cell.getNumericCellValue());
}
break;
}
case?Cell.CELL_TYPE_STRING:{
cellValue?=?cell.getRichStringCellValue().getString();
break;
}
default:
cellValue?=?"";
}
}else{
cellValue?=?"";
}
return?cellValue;
}
}
四、運行結果
代碼運行前保證在D盤下有一個test.xlsx文檔,不然報文件找不到異常;Excel文檔中的表頭要和代碼中的String columns[] = {"name","age","score"}對應起來。
總結
以上是生活随笔為你收集整理的java excel解析视频教程_java解析Excel(xls、xlsx两种格式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js实现的网页颜色代码表全集_javas
- 下一篇: mingw64 下 java,如何安装M