자바(Java)
[java] 자바 엑셀 쓰기 Apache POI 사용 xlsx
xemaker
2020. 8. 26. 10:49
이전글에서 HSSFWorkbook -> XSSFWorkbook 이런식으로 H가 붙은것을 X로 바꿔주면 된다.
그랬더니
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
at bbc.Excel.main(Excel.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
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)
... 1 more
이런 에러가 났다. 다운받은 poi 디렉토리에서 poi-4.1.2\ooxml-lib 안에 있는 jar들도 이클립스 build path 에 추가해줘야 했다.
아마 xmlbeans-3.1.0.jar 이 파일이 없어서 오류가 난듯.
그래서 build path 추가 하고 다시 실행하였더니 성공
package bbc;
import java.io.FileOutputStream;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Excel {
public static void main(String[] args) {
@SuppressWarnings("resource")
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("bbc");
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("테스트");
try {
FileOutputStream fos = new FileOutputStream("bbc.xlsx");
workbook.write(fos);
fos.close();
System.out.println("성공");
}catch(Exception e) {
e.printStackTrace();
}
}
}