티스토리 뷰
주어진 엑셀 파일을 이용하여 1번부터 3번까지 문제에 대한 정답을 HTML 파일로 만들어 출력하는 프로젝트이다.
각 인구의 합계는 개별 데이터를 가져와서 합해주는 연산을 해주면 되니, 총 7개의 열만 가져와 작업을 했다.
ReadExcel 메서드:
@Override
public void excelReader(String uri) {
File file = new File(uri);
Workbook wb = null;
ArrayList<String> tempArray = new ArrayList<>();
try {
wb = Workbook.getWorkbook(file);
Sheet sheet = wb.getSheet(0);
Cell cell = null;
int n = 4;
while (true) {
try {
for (int i = 1; i < 13; i++) {
if ((i==1)||(i==2)||(i==7)||(i==8)||(i==10)||(i==11)||(i==12)) {
cell = sheet.getCell(i, n);
tempArray.add(cell.getContents());
}
}
DataClass.popList.add(new PopulationClass(tempArray.get(0),
tempArray.get(1), tempArray.get(2), tempArray.get(3), tempArray.get(4), tempArray.get(5), tempArray.get(6)));
tempArray.clear();
n++;
} catch (Exception e) {
break;
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
이후 저장한 결과 값을 이용하여 1번부터 3번 문제를 푸는 메서드를 각각 구성하여 출력하면 된다.
각 문제에 필요한 메서드:
@Override
public String getMostPopulous_Foreigner() {
String name = "";
int greatest = 0;
for(PopulationClass pc : DataClass.popList) {
if(pc.getTotalForeigner() > greatest) {
greatest = pc.getTotalForeigner();
name = pc.getNameOfTown();
}
}
return name;
}
@Override
public ArrayList<String> getKoreanTown() {
ArrayList<String> names = new ArrayList<>();
for(PopulationClass pc : DataClass.popList) {
if(pc.getTotalKorean()>pc.getTotalForeigner()) {
names.add(pc.getNameOfTown());
}
}
return names;
}
@Override
public String findThePlace() { //전체 인구 대비 외국인 인구의 비율이 1% 이하인 구 중에서 세대당 인구 평균이 가장 낮은 곳이 적합할 것이라고 판단
String name = "";
float min = 3.0f;
for(PopulationClass pc : DataClass.popList) {
float f =(float)pc.getTotalForeigner();
float p = (float)pc.getTotalPopulation();
if(((f)/p)*100 <= 1) {
if(pc.getPopPerF() <= min) {
name = pc.getNameOfTown();
min = pc.getPopPerF();
}
}
}
return name;
}
프로젝트의 깃 허브 주소:
github.com/Choonham/Choonham-2020.03.10-Spring-Class/tree/master/population_nyj
끝!
반응형
'[JAVA] > JExcel' 카테고리의 다른 글
"웹 개발자 양성과정" 03.25 문제 풀이 <엑셀에 있는 데이터 다루기> (0) | 2021.03.25 |
---|---|
"웹 개발자 양성과정" 03.24 <jExcel Api> (0) | 2021.03.25 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- await
- 인천 구월동 맛집
- 정보보안기사 #실기 #정리
- 맛집
- react-native
- AsyncStorage
- 파니노구스토
- javascript
- Promise
- 인천 구월동 이탈리안 맛집
- 이탈리안 레스토랑
- redux-thunk
- Async
- react
- redux
- Total
- Today
- Yesterday