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

PhpWord中如何修改图表标题与数据标签的字体样式

PhpWord设置饼图标题、数据内容字体样式实现方法

官方公开的样式文档未覆盖图表文本样式的配置说明,当前版本PhpWord已原生支持该配置,无需修改底层源码,具体配置方式如下:

  • 标题样式:setTitle() 方法支持第二个参数传入字体配置数组,规则和普通文本字体配置一致,可自定义字体名、字号、颜色、加粗、斜体等属性。
  • 数据标签样式:在setDataLabelOptions()的配置项中新增font键,传入对应字体配置数组,即可控制饼图上显示的百分比、数值、分类名等标签的样式。
  • 图例样式:调用setLegendFont()方法传入字体配置数组,可自定义图例的文本样式。

注意:上述方法要求PhpWord版本≥0.18,低版本无对应API,需先升级依赖后使用。如果需要复用全局预设样式,直接将提前定义好的样式数组传入对应参数即可,无需额外渲染处理。

调整后的饼图生成方法代码参考:

public function createPieChart($cats,$values,$title){
    $chart = new Chart('pie',$cats,$values);
    
    // 按需自定义各部分字体样式
    $titleFont = [
        'name' => 'Microsoft YaHei',
        'size' => 14,
        'bold' => true,
        'color' => '333333'
    ];
    $dataLabelFont = [
        'name' => 'Microsoft YaHei',
        'size' => 10,
        'color' => '000000'
    ];
    $legendFont = [
        'name' => 'Microsoft YaHei',
        'size' => 10,
        'color' => '666666'
    ];

    $chart->getStyle()
        ->setTitle($title, $titleFont)
        ->setShowLegend(true)
        ->setLegendPosition('b')
        ->setLegendFont($legendFont)
        ->setColors($this->colors)
        ->setWidth(Converter::inchToEmu(3))
        ->setHeight(Converter::inchToEmu(3))
        ->setDataLabelOptions([
            'showCatName' => false,
            'showVal' => false,
            'showPercent' => true,
            'font' => $dataLabelFont
        ]);
    return $chart;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:45:33