日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

excel 解析 java_java解析Excel(xls、xlsx两种格式)

發(fā)布時(shí)間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 excel 解析 java_java解析Excel(xls、xlsx两种格式) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

https://www.cnblogs.com/hhhshct/p/7255915.html

*********************************************************

一、需要導(dǎo)入的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

maven

org.apache.poi

poi-ooxml

3.17

二、主要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類(lèi)型

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;

}

}

四、運(yùn)行結(jié)果

代碼運(yùn)行前保證在D盤(pán)下有一個(gè)test.xlsx文檔,不然報(bào)文件找不到異常;Excel文檔中的表頭要和代碼中的String columns[] = {"name","age","score"}對(duì)應(yīng)起來(lái)。

例2

importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importorg.apache.poi.xssf.usermodel.XSSFRow;importorg.apache.poi.xssf.usermodel.XSSFSheet;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;public classTestExcel {public static void main(String[] args) throwsIOException{//創(chuàng)建工作薄 xlsx

XSSFWorkbook xssWorkbook = newXSSFWorkbook();//創(chuàng)建工作表

XSSFSheet sheet = xssWorkbook.createSheet("sheet1");for (int row = 0; row < 10; row++)

{

XSSFRow rows=sheet.createRow(row);for (int col = 0; col < 10; col++)

{//向工作表中添加數(shù)據(jù)

rows.createCell(col).setCellValue("data" + row +col);

}

}// File xlsFile = new File("poi.xlsx");

FileOutputStream xlsStream= newFileOutputStream(xlsFile);

xssWorkbook.write(xlsStream);

}

}

總結(jié)

以上是生活随笔為你收集整理的excel 解析 java_java解析Excel(xls、xlsx两种格式)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。