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

OpenTBS / PHP - How do I dynamically generate horizontal values for embedded graph inside of docx template?

我有一张图表,我可以在 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);

带渲染图表的输出文件

图表模板

Table 的 x 轴值

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

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

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

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

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