[상황]
가계부 작성한 내역들을 csv 파일로 내려받아,
복붙을 쉽게 하기 위해서 새로운 excel 파일로 생성하는 Java 로직 구현을 만들어보았습니다.
(java 로직 코드는 ChatGPT를 통해 예시를 전달받아 수정진행했습니다.)
1. jar 다운로드
Apache POI 라이브러리 다운로드 필요
[excel 파일로 생성하기 위한 jar]
poi-5.2.4.jar
poi-ooxml-5.2.4.jar
poi-ooxml-schemas-5.2.4.jar
xmlbeans-5.0.3.jar
commons-collections4-4.4.jar
commons-compress-1.21.jar
commons-math3-3.6.1.jar
log4j-api-2.14.1.jar
log4j-core-2.14.1.jar
JAR 파일 다운로드 링크
: https://poi.apache.org/download.html
Apache POI - Download Release Artifacts
<!--+ |breadtrail +--> <!--+ |start Menu, mainarea +--> <!--+ |start Menu +--> <!--+ |end Menu +--> <!--+ |start content +--> Apache POI - Download Release Artifacts Available Downloads This page provides instructions on how to download and verify the Apac
poi.apache.org
1번 실행하다가 오류 발생 시
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject 발생 시
아래 URL 참고
[ 예제 소스 코드]
: 변환할 csv 파일 경로에 넣고, xlsx 변환된 파일 넣을 경로만 넣고서 실행하시면됩니다.
: java 실행 시 아래와 같이 output_년월일_시분초 로 xlsx파일 생성되어 보여집니다.
package test;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import org.apache.poi.ss.usermodel.Cell;
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 TextToExcel {
public static void main(String[] args) {
String csvFile = ""; // 변환할 CSV 파일 경로
String excelFile = ""; // 생성할 엑셀 파일
//현재 날짜와 시간을 사용하여 파일명 생성
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss");
String formattedDate = now.format(formatter);
excelFile = "output_" + formattedDate + ".xlsx"; // 생성할 엑셀 파일 경로
try (Workbook workbook = new XSSFWorkbook()) {
Sheet sheet = workbook.createSheet("Data");
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "UTF-8"))) {
String line;
int rowNum = 0;
while ((line = br.readLine()) != null) {
Row row = sheet.createRow(rowNum++);
String[] data = line.split(","); // 콤마로 데이터 분리
for (int i = 0; i < data.length; i++) {
Cell cell = row.createCell(i);
cell.setCellValue(data[i]);
}
}
}
// 엑셀 파일로 저장
try (FileOutputStream fileOut = new FileOutputStream(excelFile)) {
workbook.write(fileOut);
System.out.println("엑셀 파일이 생성되었습니다.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
'Language > Java' 카테고리의 다른 글
[JAVA] getter setter 와 DTO 차이 (0) | 2024.09.06 |
---|---|
[Java] tomcat 다운로드 및 설치 (0) | 2020.08.10 |
[Java] 이클립스(Eclipse) 다운로드 및 설치(zip) (0) | 2020.08.10 |
[Java] 이클립스(Eclipse) 다운로드 및 설치 (0) | 2020.07.17 |
[Java] Java 1.8 (Java SE Development Kit 8) 다운로드 및 설치 (Mac OS) (0) | 2020.04.05 |
댓글