Skip to content

Commit 02e0a74

Browse files
author
bnitech
committed
기본 샘플 구조
1 parent 26ee50c commit 02e0a74

File tree

7 files changed

+161
-25
lines changed

7 files changed

+161
-25
lines changed
Lines changed: 40 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,48 @@
11
package com.bnitech.study.demo.module;
22

3-
import java.io.IOException;
4-
import java.io.OutputStream;
5-
63
import org.apache.poi.ss.SpreadsheetVersion;
74
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
85

9-
public class ExcelWorkbook {
10-
11-
private static final SpreadsheetVersion supplyExcelVersion = SpreadsheetVersion.EXCEL2007;
12-
13-
private SXSSFWorkbook wb;
14-
15-
public ExcelWorkbook() {
16-
wb = new SXSSFWorkbook();
17-
}
18-
19-
public ExcelSheet createSheet() {
20-
return new ExcelSheet(wb.createSheet());
21-
}
6+
import java.io.IOException;
7+
import java.io.OutputStream;
228

23-
public ExcelSheet createSheet(String name) {
24-
return new ExcelSheet(wb.createSheet(name));
25-
}
9+
public class ExcelWorkbook {
2610

27-
public void write(OutputStream stream) throws IOException {
28-
wb.write(stream);
29-
wb.close();
30-
wb.dispose();
31-
stream.close();
32-
}
11+
private static final SpreadsheetVersion supplyExcelVersion = SpreadsheetVersion.EXCEL2007;
12+
13+
private SXSSFWorkbook wb;
14+
private OutputStream outputStream;
15+
private Class<?> aClass;
16+
17+
public ExcelWorkbook() {
18+
wb = new SXSSFWorkbook();
19+
}
20+
21+
public ExcelWorkbook(OutputStream stream, Class<?> aClass) {
22+
this();
23+
this.outputStream = stream;
24+
this.aClass = aClass;
25+
}
26+
27+
public ExcelSheet createSheet() {
28+
return new ExcelSheet(wb.createSheet());
29+
}
30+
31+
public ExcelSheet createSheet(String name) {
32+
return new ExcelSheet(wb.createSheet(name));
33+
}
34+
35+
public void write(OutputStream stream) throws IOException {
36+
wb.write(stream);
37+
wb.close();
38+
wb.dispose();
39+
stream.close();
40+
}
41+
42+
public void write() throws IOException {
43+
wb.write(outputStream);
44+
wb.close();
45+
wb.dispose();
46+
outputStream.close();
47+
}
3348
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.bnitech.study.demo.sample.controller;
2+
3+
import com.bnitech.study.demo.module.ExcelSheet;
4+
import com.bnitech.study.demo.module.ExcelWorkbook;
5+
import com.bnitech.study.demo.sample.dto.PersonDto;
6+
import com.bnitech.study.demo.sample.service.IPersonService;
7+
import lombok.RequiredArgsConstructor;
8+
import org.springframework.web.bind.annotation.GetMapping;
9+
import org.springframework.web.bind.annotation.PathVariable;
10+
import org.springframework.web.bind.annotation.RestController;
11+
12+
import javax.servlet.http.HttpServletResponse;
13+
import java.io.IOException;
14+
import java.util.List;
15+
16+
@RestController
17+
@RequiredArgsConstructor
18+
public class PersonController {
19+
20+
private final IPersonService personService;
21+
22+
@GetMapping("/person/all")
23+
public List<PersonDto> getPersonInfoList() {
24+
return personService.getPersonList();
25+
}
26+
27+
@GetMapping("/person/{personId}")
28+
public PersonDto getPersonInfo(@PathVariable long personId) {
29+
return personService.getPerson(personId);
30+
}
31+
32+
@GetMapping("/person/excel")
33+
public void getPersonInfoListByExcel(HttpServletResponse response) throws IOException {
34+
response.setHeader("Set-Cookie", "fileDownload=true; path=/");
35+
response.setHeader("Content-Disposition", "attachment; filename=\"Car List.xlsx\"");
36+
37+
ExcelWorkbook workbook = new ExcelWorkbook(response.getOutputStream(), PersonDto.class);
38+
ExcelSheet sheet = workbook.createSheet();
39+
40+
workbook.write();
41+
}
42+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.bnitech.study.demo.sample.dao;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
import lombok.Setter;
6+
import lombok.ToString;
7+
8+
import javax.persistence.Entity;
9+
import javax.persistence.Id;
10+
11+
@Entity
12+
@Getter
13+
@Setter
14+
@NoArgsConstructor
15+
@ToString
16+
public class Person {
17+
@Id
18+
private long id;
19+
private String name;
20+
private String company;
21+
private int salary;
22+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.bnitech.study.demo.sample.dto;
2+
3+
import com.bnitech.study.demo.module.ExcelHeader;
4+
import com.bnitech.study.demo.module.dto.ExcelDto;
5+
6+
public class PersonDto extends ExcelDto {
7+
8+
@Override
9+
protected void setExcelHeader(ExcelHeader excelHeader) {
10+
super.excelHeader = excelHeader;
11+
}
12+
13+
@Override
14+
protected int getExcelValue() {
15+
return 0;
16+
}
17+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.bnitech.study.demo.sample.repository;
2+
3+
import com.bnitech.study.demo.sample.dao.Person;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public interface PersonRepository extends JpaRepository<Person, Long> {
9+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.bnitech.study.demo.sample.service;
2+
3+
import com.bnitech.study.demo.sample.dto.PersonDto;
4+
5+
import java.util.List;
6+
7+
public interface IPersonService {
8+
List<PersonDto> getPersonList();
9+
10+
PersonDto getPerson(long personId);
11+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.bnitech.study.demo.sample.service.impl;
2+
3+
import com.bnitech.study.demo.sample.dto.PersonDto;
4+
import com.bnitech.study.demo.sample.service.IPersonService;
5+
import org.springframework.stereotype.Service;
6+
7+
import java.util.List;
8+
9+
@Service
10+
public class PersonService implements IPersonService {
11+
@Override
12+
public List<PersonDto> getPersonList() {
13+
return null;
14+
}
15+
16+
@Override
17+
public PersonDto getPerson(long personId) {
18+
return null;
19+
}
20+
}

0 commit comments

Comments
 (0)