apache poi 生成word 3D折线图 maven

     首先pom导入poi依赖,要用高版本的poi,我用的5.0.0是可以的。
  注意此处有坑,在5.0.0高版本中原来的poi-ooxml-schemas已经改名为poi-ooxml-lite
  
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml-lite</artifactId>
        <version>5.0.0</version>
    </dependency>

import的时候把所有chart相关的都弄进来就行

import org.apache.poi.xddf.usermodel.chart.*;

下边为生成word中3D折线图的代码

    public static void generateChart(XWPFChart chart, String[] series, String[] categories, List<Double[]> values, String title) {
        String chartTitle = title;
        final List<XDDFChartData> data = chart.getChartSeries();
        final XDDFLine3DChartData line = (XDDFLine3DChartData) data.get(0);//这里一般获取第一个,我们这里是3D折线图就是XDDFLine3DChartData,这里就是关键的代码

        final int numOfPoints = categories.length;

        final String categoryDataRange = chart.formatRange(new CellRangeAddress(1, numOfPoints, 0, 0));

        final XDDFDataSource<?> categoriesData = XDDFDataSourcesFactory.fromArray(categories, categoryDataRange, 0);
        for (int i = 0; i < values.size(); i++) {
            final String valuesDataRange = chart.formatRange(new CellRangeAddress(1, numOfPoints, i + 1, i + 1));
            Number[] value = values.get(i);
            final XDDFNumericalDataSource<? extends Number> valuesData = XDDFDataSourcesFactory.fromArray(value, valuesDataRange, i + 1);
            XDDFChartData.Series ser;//图表中的系列
            ser = line.getSeries().get(i);
            ser.replaceData(categoriesData, valuesData);
            CellReference cellReference = chart.setSheetTitle(series[i], 1);//修改系列标题
            ser.setTitle(series[i], cellReference);
        }

        chart.plot(line);
        chart.setTitleText(chartTitle);//折线图标题
        chart.setTitleOverlay(false);
    }

其他部分的代码就不贴了,生成word普通折线图的教程网上一搜一大把,大同小异

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache POI 是一个用于操作 Microsoft Office 文档的 Java 库。要使用 Apache POI 生成 Word 文档,可以按照以下步骤进行操作: 1. 添加 Apache POI 依赖项:在项目的构建文件(如 Maven 的 pom.xml)中添加 Apache POI 的依赖项。例如,对于最新版本的 Apache POI,可以添加以下依赖项: ```xml <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> </dependencies> ``` 2. 创建 Word 文档对象:使用 Apache POI 的 XWPFDocument 类创建一个新的 Word 文档对象。 ```java XWPFDocument document = new XWPFDocument(); ``` 3. 添加段落和文本内容:使用 XWPFDocument 对象的 createParagraph() 方法创建段落对象,然后使用段落对象的 createRun() 方法创建文本运行对象,并设置文本内容。 ```java XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.setText("Hello, World!"); ``` 4. 格式化文本内容:可以使用 XWPFRun 对象的方法来设置文本样式,如字体、字号、颜色等。 ```java run.setFontSize(12); run.setFontFamily("Arial"); run.setColor("FF0000"); // 红色 ``` 5. 添加表格:使用 XWPFDocument 对象的 createTable() 方法创建表格对象,然后可以使用表格对象的方法来添加行和单元格,并设置内容。 ```java XWPFTable table = document.createTable(); XWPFTableRow row = table.getRow(0); row.getCell(0).setText("Cell 1"); row.createCell().setText("Cell 2"); ``` 6. 保存文档:使用 XWPFDocument 对象的 write() 方法将文档保存到文件或输出流中。 ```java FileOutputStream out = new FileOutputStream("output.docx"); document.write(out); out.close(); ``` 这只是 Apache POI 生成 Word 文档的基本使用方法,还有更多高级的功能和选项可以探索。可以参考 Apache POI 的官方文档和示例代码来获得更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值