[java] Apache POI를 이용한 Word 차트 생성
Apache POI는 Java에서 Microsoft Office 파일을 다룰 수 있는 라이브러리입니다. 이 라이브러리를 사용하여 Word 문서에 차트를 생성하는 방법을 알아보겠습니다.
1. Maven 의존성 추가하기
먼저, Apache POI를 사용하기 위해 Maven 프로젝트의 pom.xml
파일에 다음 의존성을 추가합니다.
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
2. Word 차트 생성하기
아래의 예제 코드는 Apache POI를 사용하여 Word 문서에 Bar 차트를 생성하는 코드입니다.
import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;
import java.io.FileOutputStream;
import java.io.IOException;
public class WordChartExample {
public static void main(String[] args) {
try (XWPFDocument document = new XWPFDocument()) {
// 문서에 차트를 추가할 도표 객체 생성
XWPFChart chart = document.createChart();
// 차트 타입 설정
chart.createBarChart();
// 차트 데이터 생성
XDDFChartData data = chart.createData(ChartTypes.BAR);
XDDFDataSource<String> categories = XDDFDataSourcesFactory.fromArray(new String[] { "Apple", "Banana", "Orange" });
// 카테고리 추가
XDDFNumericalDataSource<Double> values = XDDFDataSourcesFactory.fromArray(new Double[] { 10.0, 15.0, 8.0 });
XDDFChartData.Series series = data.addSeries(categories, values);
// 도표에 카테고리 및 값을 설정
data.setVaryColors(true);
series.setTitle("Fruits", null);
chart.plot(data);
// 문서에 차트 추가
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
XmlCursor cursor = paragraph.getCTP().newCursor();
cursor.toEndToken();
chart.getCTChartSpace().newCursor().moveXml(cursor);
run.addBreak();
chart.getCTChartSpace().newCursor().moveXml(cursor);
run.addBreak();
// 생성된 Word 파일 저장
try (FileOutputStream out = new FileOutputStream("chart_example.docx")) {
document.write(out);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
위 코드의 주석에 따라서 차트 타입, 카테고리, 값 등을 설정할 수 있습니다. 마지막으로 생성된 Word 파일은 chart_example.docx
로 저장됩니다.
참고 자료
- Apache POI 공식 문서: https://poi.apache.org/
- Apache POI GitHub 저장소: https://github.com/apache/poi