1. build.gradle
dependencies {
// https://mvnrepository.com/artifact/org.apache.poi/poi
implementation group: 'org.apache.poi', name: 'poi', version: '4.1.2'
implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '4.1.2'
// https://mvnrepository.com/artifact/org.apache.tika/tika-core
implementation group: 'org.apache.tika', name: 'tika-core', version: '2.3.0'
}
2. WriteExcel.java
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
public class WriteExcel {
public static void writeToExcel(String id, String name) {
try {
// 파일을 읽기 위한 InputStream 생성
InputStream file = new FileInputStream("src/main/resources/static/student.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
// 새로운 행을 추가하기 위한 로직
int lastRowNum = sheet.getLastRowNum();
XSSFRow row = sheet.createRow(lastRowNum + 1);
// 셀에 데이터 쓰기
row.createCell(0).setCellValue(Integer.parseInt(id));
row.createCell(1).setCellValue(name);
// 변경 사항을 적용하기 위해 파일을 새로 쓰기
FileOutputStream fileOut = new FileOutputStream("src/main/resources/static/student.xlsx");
workbook.write(fileOut);
// 리소스 정리
fileOut.close();
workbook.close();
file.close(); // InputStream도 닫기
} catch (Exception e) {
e.printStackTrace();
}
}
}
3. 실행 결과
public static void main(String[] args) {
// 실행 결과 확인
// 번호 : 1 ~ 10 , 이름 : username1 ~ username10
for (int i = 1; i <= 10; i++) {
writeToExcel(Integer.toString(i), "username" + i);
}
}
}
- 실행 전
- 실행 후
- 원하는 형식의 데이터가 작성됨을 확인!
- 기존의 파일을 열고 데이터를 작성한 후 같은 이름으로 저장해서 덮어씀
- 다른 이름으로 저장 가능
'Spring Boot' 카테고리의 다른 글
[Spring Boot] 스프링 메일 전송 방법 ( + google Gmail SMTP 설정) (0) | 2024.03.28 |
---|---|
[Spring Boot] 스프링 부트 엑셀 파일 업로드 예제( + 엑셀 파일 열기로 업로드 확인 ) (0) | 2024.03.28 |
[AWS] EC2 서버 시간 설정 (TimeZone 변경) (0) | 2024.03.26 |
[Spring Boot] 원하는 시간에 특정 코드 자동 실행시키기 (@Scheduled) (0) | 2024.03.26 |
[Spring Boot] JSON String , Object 변환 (JSONParser, Gson, object-mapper) (1) | 2024.03.16 |