OpenTBS / PHP - 如何在docx模板内动态生成嵌入图的水平值?

时间:2015-08-24 19:34:36

标签: php opentbs

我有一个图表,我可以在docx模板中手动创建x轴值。模板输出正确的图形。我不想依赖于手动输入所有x值并替换php数组中的值,而是想用php数组中的值动态填充水平轴。

PHP代码

// --------------------------------------------
        // Merging and other operations on the template
        // --------------------------------------------
        // Change chart series
        $ChartNameOrNum = 'Buildup'; // Title of the shape that embeds the chart
        $SeriesNameOrNum = 'Series 1';
        $NewValues = array($buildupLabels['TotalActionItems'], $buildupSeries['TotalActionItems'] );
        $NewLegend = "Total Action Items";
        $TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);

        // Delete comments
        $TBS->PlugIn(OPENTBS_DELETE_COMMENTS);

带有渲染图表的输出文件

Output Chart

图表模板

BuildUp Template

x轴值表

Manually Entered Values

我如何实现上述目标?这是可以使用OpenTBS,还是我需要手动输入所有x轴值?

2 个答案:

答案 0 :(得分:0)

OpenTBS允许您更改任何系列的x和y值。 因此,您只需更改所有系列的所有(x,y)项目,然后旧的x值应完全消失在图表中。您必须获得x轴的自动最小值和最大值,以使其适应新值。

您还必须牢记Ms Office Charts行为:

  • 如果您的图表类型是XY(也称为Scatter),则系列条目的(x,y)可以按任何顺序排列,x轴不必显示项目使用的值。当你有几个具有不同x值的系列并且你想在x ax中显示未使用的x值时,这很好。
  • 如果您的图表类型与XY不同,则x值将被视为类别。仅使用的值将显示在x轴上。如果丝束系列具有不同的类别,则所有可能的值都显示在x轴上。

答案 1 :(得分:0)

我刚刚发现我不需要在嵌入式图表中自动生成所有水平值。我需要做的就是在第一个记录中放置一个日期(例如Mar 05 15或者其他任何不在我填充的日期范围内),系列将自动填充我的PHP数组中的所有可用日期。