在技術(shù)的高速發(fā)展中我們學(xué)習(xí)編程不僅僅是為了制作相關(guān)的應(yīng)用程序了,我們開始的使用編程來進(jìn)行文件之間的操作,那么今天就來和大家分享有關(guān)于,java讀取本地excel 文件,將excel內(nèi)容轉(zhuǎn)換成java對象這方面的相關(guān)內(nèi)容。我們的操作工具eclipse + maven。
下面是我們的一個(gè)步驟:
1. java操作excel所使用的jar包 poi-ooxml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
2.在本地建立一個(gè)excel文件
如下所示:
3.書寫代碼實(shí)現(xiàn)
package com.daojia.certify.excelimport;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.alibaba.fastjson.JSON;
import com.daojia.certify.util.DateBuilder;
/**
* @Description : TODO導(dǎo)入excel
* @date : Mar 31, 2018 5:17:14 PM
*/
public class ExcelImport {
public static void main(String args[]){
ExcelImport excelImport = new ExcelImport();
try {
excelImport.importExcelAction();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//導(dǎo)入Excel數(shù)據(jù)
public void importExcelAction() throws Exception {
//文件路徑
String filePath ="C:/Users/daojia/Desktop/test.xlsx";
XSSFWorkbook wookbook = new XSSFWorkbook(new FileInputStream(filePath));
XSSFSheet sheet = wookbook.getSheet("Sheet1");
//獲取到Excel文件中的所有行數(shù)
int rows = sheet.getPhysicalNumberOfRows();
//遍歷行
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
for (int i = 1; i < rows; i++) {
// 讀取左上端單元格
XSSFRow row = sheet.getRow(i);
// 行不為空
if (row != null) {
Map<String,Object> map = new HashMap<String,Object>();
//獲取到Excel文件中的所有的列
int cells = row.getPhysicalNumberOfCells();
//姓名
XSSFCell nameCell =row.getCell(1);
String name = getValue(nameCell);
//性別
XSSFCell sexCell =row.getCell(2);
String sex = getValue(sexCell);
//年齡
XSSFCell ageCell =row.getCell(3);
String age = getValue(ageCell);
//出生年月
XSSFCell birthCell =row.getCell(4);
String birth = DateBuilder.convertDateToString(birthCell.getDateCellValue(), "yyyy-MM-dd");
map.put("name", name);
map.put("sex", sex);
map.put("age", age);
map.put("birth", birth);
list.add(map);
}
}
System.out.println("list = "+JSON.toJSONString(list));
}
private String getValue(XSSFCell xSSFCell){
if(null == xSSFCell){
return "";
}
if (xSSFCell.getCellType() == xSSFCell.CELL_TYPE_BOOLEAN) {
// 返回布爾類型的值
return String.valueOf(xSSFCell.getBooleanCellValue());
} else if (xSSFCell.getCellType() == xSSFCell.CELL_TYPE_NUMERIC) {
// 返回?cái)?shù)值類型的值
return String.valueOf(xSSFCell.getNumericCellValue());
} else {
// 返回字符串類型的值
return String.valueOf(xSSFCell.getStringCellValue());
}
}
輸出結(jié)果:
list = [{"age":"","birth":"1991-09-03","name":"張三","sex":"男"},
{"age":"23.0","birth":"1992-09-03","name":"李四","sex":"女"},
{"age":"34.0","birth":"1993-09-03","name":"王五","sex":"男"},
{"age":"54.0","birth":"1994-09-03","name":"趙六","sex":"女"}]
注意:
1.如果excel格式為 .xlsx ,使用以上方法,如果excel格式為 .xls 以上的 XSSFCell 變成 HSSFCell
2.excel中的日期處理
首先將excel日期設(shè)置格式為 2017/09/08
其次使用 getDateCellValue 方法讀取日期格式即可
以上就是有關(guān)于“java讀取本地excel 文件”這方面的相關(guān)內(nèi)容,更多有關(guān)于 java 文件的相關(guān)內(nèi)容我們可以在 java教程中查閱。
更多快速學(xué)習(xí)Java的方法大家可以看看下面的內(nèi)容:
視頻教程:
教程:
微課: