0
我需要在java中创建包含图表的Microsoft Word文档。我正在尝试Apache POI,但还没有找到办法做到这一点。有没有例子说明如何做到这一点?在apache poi中创建图表
我需要在java中创建包含图表的Microsoft Word文档。我正在尝试Apache POI,但还没有找到办法做到这一点。有没有例子说明如何做到这一点?在apache poi中创建图表
您可以使用Temp Ms-Word文件创建图表。 只需在Temp Ms-Word文件中创建图表,然后使用自定义POI jar并将其写回您的实际Ms字文件 https://github.com/sandeeptiwari32/POI_ENHN/blob/master/POI3.14.jar。 您可以在官方POI版本得到这个代码4.0
代码示例:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xwpf.usermodel.XWPFChart;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChart;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTitle;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTx;
import org.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBody;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraph;
public class TestXWPFChart {
public static void main(String[] args) throws Exception {
FileInputStream inpuFile=new FileInputStream("input.docx");
FileOutputStream outFile = new FileOutputStream("output.docx");
@SuppressWarnings("resource")
XWPFDocument document = new XWPFDocument(inpuFile);
XWPFChart chart=null;
for (POIXMLDocumentPart part : document.getRelations()) {
if (part instanceof XWPFChart) {
chart = (XWPFChart) part;
break;
}
}
//change chart title from "Chart Title" to XWPF CHART
CTChart ctChart = chart.getCTChart();
CTTitle title = ctChart.getTitle();
CTTx tx = title.addNewTx();
CTTextBody rich = tx.addNewRich();
rich.addNewBodyPr();
rich.addNewLstStyle();
CTTextParagraph p = rich.addNewP();
CTRegularTextRun r = p.addNewR();
r.addNewRPr();
r.setT("XWPF CHART");
//write modified chart in output docx file
document.write(outFile);
}
}
'HSSF'(用于XLS)或'XSSF'(对于XLSX)? – Gagravarr
适用于Microsoft Word等DOCX – valanto