자바(Java)
[java] 자바 엑셀 쓰기 Apache POI 사용 xls
xemaker
2020. 8. 26. 10:42
사람들은 엑셀을 좋아한다. 그래서 자바를 사용해 간단하게 엑셀에 쓰기를 살펴보겠다.
우선 아파치 poi api를 다운로드 받는다.
https://poi.apache.org/download.html
Apache POI - Download Release Artifacts
Apache POI - Download Release Artifacts Available Downloads This page provides instructions on how to download and verify the Apac
poi.apache.org
The latest stable release is Apache POI 4.1.2
17 February 2020 - POI 4.1.2 available
현재 최신 버전이네요.
www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-4.1.2-20200217.zip
다운받으면
파일이 생기고 압축을 풀면 다음과 같이 생긴다.
루트에 있는 jar만 이클립스에 build path에 추가했더니
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/math3/util/ArithmeticUtils
at org.apache.poi.poifs.property.RootProperty.setSize(RootProperty.java:59)
at org.apache.poi.poifs.property.DirectoryProperty.<init>(DirectoryProperty.java:52)
at org.apache.poi.poifs.property.RootProperty.<init>(RootProperty.java:31)
at org.apache.poi.poifs.property.PropertyTable.<init>(PropertyTable.java:58)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:102)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:124)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1373)
at bbc.Excel.main(Excel.java:22)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.math3.util.ArithmeticUtils
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 8 more
이런 에러가 났다.
lib 폴더에 있는 commons-math3-3.6.1.jar이 파일도 이클립스 build path에 추가해 줘야 했다.
package bbc;
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Excel {
public static void main(String[] args) {
@SuppressWarnings("resource")
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("bbc");
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue("테스트");
try {
FileOutputStream fos = new FileOutputStream("bbc.xls");
workbook.write(fos);
fos.close();
System.out.println("성공");
}catch(Exception e) {
e.printStackTrace();
}
}
}
이렇게 하면 bbc.xls 파일이 생성된다.
다음글에서는 xlsx 확장자로 하는 방법을 살펴본다.