자바 엑셀 분석 방법(xls,xlsx 두 가지 형식)
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
1.import org.apache.po.ss.usermodel.Workbook,Excel 문서 에 대응 합 니 다.
2.import org.apache.poi.hssf.usermodel.HSSFWorkbook,xls 형식의 Excel 문서 에 대응 합 니 다.
3.import org.apache.pai.xssf.usermodel.XSSFWorkbook,xlsx 형식의 Excel 문서 에 대응 합 니 다.
4.import org.apache.voi.ss.usermodel.Sheet,엑셀 문서 의 sheet 에 대응 합 니 다.
5.import org.apache.po.ss.usermodel.Row 는 sheet 의 한 줄 에 대응 합 니 다.
6.import org.apache.poi.ss.usermodel.Cell 은 하나의 셀 에 대응 합 니 다.
3.코드 는 다음 과 같다.
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<Map<String,String>> list = null;
String cellData = null;
String filePath = "D:\\test.xlsx";
String columns[] = {"name","age","score"};
wb = readExcel(filePath);
if(wb != null){
//
list = new ArrayList<Map<String,String>>();
// sheet
sheet = wb.getSheetAt(0);
//
int rownum = sheet.getPhysicalNumberOfRows();
//
row = sheet.getRow(0);
//
int colnum = row.getPhysicalNumberOfCells();
for (int i = 1; i<rownum; i++) {
Map<String,String> map = new LinkedHashMap<String,String>();
row = sheet.getRow(i);
if(row !=null){
for (int j=0;j<colnum;j++){
cellData = (String) getCellFormatValue(row.getCell(j));
map.put(columns[j], cellData);
}
}else{
break;
}
list.add(map);
}
}
// list
for (Map<String,String> map : list) {
for (Entry<String,String> 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;
}
}
4.운행 결과코드 가 실행 되 기 전에 D 디스크 아래 에 test.xlsx 문서 가 있 는 것 을 보증 합 니 다.그렇지 않 으 면 파일 에 이상 을 찾 을 수 없습니다.엑셀 문서 의 표 두 는 코드 의
String columns[] = {"name","age","score"}
와 대응 해 야 한다.총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 자바 해석 엑셀 방법(xls,xlsx 두 가지 형식)입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.