Java用POI解析excel并獲取所有單元格數(shù)據(jù)的實(shí)例
1.導(dǎo)入POI相關(guān)jar包
org.apache.poi jar
2.代碼示例
public List getAllExcel(File file, String tableName, String fname,
String enterpriseId, String reportId, String projectId)
throws FileNotFoundException, IOException, ClassNotFoundException,
InstantiationException, IllegalAccessException,
NoSuchMethodException, SecurityException, IllegalArgumentException,
InvocationTargetException, ParseException {
List listt = new ArrayList();
try {
FileInputStream fis = new FileInputStream(file);
Workbook workbook = null;
if (fname.toLowerCase().endsWith("xlsx")) {
workbook = new XSSFWorkbook(fis);
} else if (fname.toLowerCase().endsWith("xls")) {
workbook = new HSSFWorkbook(new POIFSFileSystem(fis));
}
int numberOfSheets = workbook.getNumberOfSheets();
for (int i = 0; i < numberOfSheets; i++) {
Sheet sheet = workbook.getSheetAt(i);
for (int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) { // 獲取每行
XSSFRow row = (XSSFRow) sheet.getRow(j);
if(row!=null){
List list = new ArrayList();
for (int k = 0; k < sheet.getRow(0).getPhysicalNumberOfCells(); k++) { // 獲取每個(gè)單元格
Cell cell = row.getCell(k);
if (cell == null) {
list.add("");
continue;
}
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
list.add(cell.getRichStringCellValue().getString());
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
list.add(cell.getDateCellValue());
} else {
list.add(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BOOLEAN:
list.add(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA:
list.add(cell.getCellFormula());
break;
default:
list.add("");
break;
}
}
listt.add(getByReflect(tableName, list, enterpriseId,reportId, projectId));
}
}
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return listt;
}
以上這篇Java用POI解析excel并獲取所有單元格數(shù)據(jù)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- JAVA?POI設(shè)置EXCEL單元格格式用法舉例
- Java?POI導(dǎo)出Excel時(shí)合并單元格沒(méi)有邊框的問(wèn)題解決
- java?poi?讀取單元格null或者空字符串方式
- java POI 如何實(shí)現(xiàn)Excel單元格內(nèi)容換行
- Java中EasyPoi導(dǎo)出復(fù)雜合并單元格的方法
- Java使用POI實(shí)現(xiàn)導(dǎo)出Excel的方法詳解
- java 之JNA中的Memory和Pointer的使用方法
- java 使用POI合并兩個(gè)word文檔
- java使用poi在excel單元格添加超鏈接設(shè)置字體顏色的方法
相關(guān)文章
關(guān)于Jmeter接口測(cè)試實(shí)戰(zhàn)-Cookies
這篇文章主要介紹了關(guān)于Jmeter接口測(cè)試實(shí)戰(zhàn)-Cookies問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
java使用Socket類(lèi)接收和發(fā)送數(shù)據(jù)
Socket類(lèi)是負(fù)責(zé)處理客戶(hù)端通信的Java類(lèi)。本文主要是介紹java使用Socket類(lèi)接收和發(fā)送數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-10-10
SpringBoot關(guān)閉過(guò)程中銷(xiāo)毀DisposableBean解讀
這篇文章主要介紹了SpringBoot關(guān)閉過(guò)程中銷(xiāo)毀DisposableBean解讀,一個(gè)bean的生命周期,指的是 bean 從創(chuàng)建,初始化,一系列使用,銷(xiāo)毀的過(guò)程,今天來(lái)講講 bean 的初始化和銷(xiāo)毀的方法,需要的朋友可以參考下2023-12-12
Java如何利用return結(jié)束方法調(diào)用
這篇文章主要介紹了Java如何利用return結(jié)束方法調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
javax.validation.constraints如何校驗(yàn)參數(shù)合法性
本文將深入探討javax.validation.constraints的基本用法和高級(jí)應(yīng)用,幫助讀者更好地理解和運(yùn)用這個(gè)強(qiáng)大的校驗(yàn)框架,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
spring kafka框架中@KafkaListener 注解解讀和使用案例
Kafka 目前主要作為一個(gè)分布式的發(fā)布訂閱式的消息系統(tǒng)使用,也是目前最流行的消息隊(duì)列系統(tǒng)之一,這篇文章主要介紹了kafka @KafkaListener 注解解讀,需要的朋友可以參考下2023-02-02
Spring之關(guān)于PropertyDescriptor的擴(kuò)展剖析
這篇文章主要介紹了Spring之關(guān)于PropertyDescriptor的擴(kuò)展剖析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07

