You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Poi 5的XSSFChart中设置单个数据标签为粗体?

在Apache POI 5.3.0中设置单个XSSFChart数据标签为粗体

可以实现,你需要直接操作POI底层的OOXML对象(CTDLbl),因为POI的高层XSSFChart API暂时没有封装单个数据标签的自定义设置,但底层基于OOXML Schema生成的CT类完全支持该操作。

具体实现步骤

  1. 获取图表系列的数据标签集合(CTDLbls)
  2. 针对目标数据点,获取或新增对应的单个数据标签对象(CTDLbl),并指定对应的数据点索引
  3. 给单个数据标签设置粗体字体属性

代码示例

// 获取饼图第一个系列的数据标签集合
CTDLbls dLbls = chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).getDLbls();

// 要修改第0个数据点的标签(索引从0开始)
CTDLbl singleDLbl;
if (dLbls.sizeOfLblArray() > 0) {
    // 已有单个数据标签设置时,直接获取对应索引的对象
    singleDLbl = dLbls.getLblArray(0);
} else {
    // 无单个标签设置时,新增并指定对应的数据点索引
    singleDLbl = dLbls.addNewLbl();
    singleDLbl.setIdx(0); // 指定对应第0个数据点
}

// 给单个数据标签设置粗体字体
singleDLbl.addNewTxPr();
singleDLbl.getTxPr().addNewBodyPr();
singleDLbl.getTxPr().addNewP();
singleDLbl.getTxPr().getPArray(0).addNewPPr();
singleDLbl.getTxPr().getPArray(0).getPPr().addNewDefRPr().setB(true);

说明

  • 单个数据标签的配置(CTDLbl)优先级高于全局数据标签设置,会覆盖全局样式
  • 修改setIdx的参数值,可以定位到其他数据点进行单独设置

内容的提问来源于stack exchange,提问作者Dima Klokov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:04:59