我正在尝试创建一个堆叠的条形图,如下所示,嵌入在PowerPoint模板的幻灯片上。当我在下面运行我的脚本时,我会得到一个错误。
TinyButStrong错误OpenTBS插件:(ChartChangeSeries) 'chart3‘:无法在图表’图表3‘中找到系列’3‘。进程正在结束,除非您将NoErr属性设置为true。
据我所见,我的系列与x轴的两个标签中的每一个都有明确的定义。
,我哪里出错了,如何解决这个错误?


$ecdClosureStatus = getClosureChartData('ECD');
$ChartNameOrNum = 'chart3'; // Title of the shape that embeds the chart
$ChartRef = 'chart3'; // Title of the shape that embeds the chart
$SeriesNameOrNum = 'Series 1';
$NewLegend = "Closed On Time";
$NewValues = array(
(int)$ecdClosureStatus['ClosedOnTime'],
0
);
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);
$SeriesNameOrNum = 'Series 2';
$NewLegend = 'Closed 1-30 Days Late';
$NewValues = array(
0,
(int)$ecdClosureStatus['OneToThirtyDaysLate']
);
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);
$SeriesNameOrNum = 'Series 3';
$NewLegend = 'Closed 31-60 Days Late';
$NewValues = array(
0,
(int)$ecdClosureStatus['ThirtyOneToSixtyDaysLate']
);
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);
$SeriesNameOrNum = 'Series 4';
$NewLegend = 'Closed 61-90 Days Late';
$NewValues = array(
0,
(int)$ecdClosureStatus['SixtyOneToNinetyDaysLate']
);
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);
$SeriesNameOrNum = 'Series 5';
$NewLegend = 'Closed >90 Days Late';
$NewValues = array(
0,
(int)$ecdClosureStatus['ClosedMoreThanNinetyDaysLate']
);
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);发布于 2016-01-14 18:31:12
我将每个系列的$NewValues数组修改为由两个元素组成的数组,第一个元素是x轴值,第二个元素是y轴值。X轴值是由两个值组成的数组(“按时关闭”、“关闭较晚”),y轴是由两个元素组成的数组(一个元素为零,另一个为该x值的值(要么按时关闭,要么晚闭)。
输出图

示例
$NewValues = array(array('Closed On Time', 'Closed Late'), array(
(int)$ecdClosureStatus['ClosedOnTime'],
0
));解决方案代码
$ecdClosureStatus = getClosureChartData('ECD');
$ChartNameOrNum = 'chart3'; // Title of the shape that embeds the chart
$ChartRef = 'chart3'; // Title of the shape that embeds the chart
$SeriesNameOrNum = 'Series 1';
$NewLegend = "Closed On Time";
$NewValues = array(array('Closed On Time', 'Closed Late'), array(
(int)$ecdClosureStatus['ClosedOnTime'],
0
));
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);
$SeriesNameOrNum = 'Series 2';
$NewLegend = '1-30 Days Late';
$NewValues = array(array('Closed On Time', 'Closed Late'), array(
0,
(int)$ecdClosureStatus['OneToThirtyDaysLate']
));
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);
$SeriesNameOrNum = 'Series 3';
$NewLegend = ' 31-60 Days Late';
$NewValues = array(array('Closed On Time', 'Closed Late'), array(
0,
(int)$ecdClosureStatus['ThirtyOneToSixtyDaysLate']
));
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);
$SeriesNameOrNum = 'Series 4';
$NewLegend = '61-90 Days Late';
$NewValues = array(array('Closed On Time', 'Closed Late'), array(
0,
(int)$ecdClosureStatus['SixtyOneToNinetyDaysLate']
));
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);
$SeriesNameOrNum = 'Series 5';
$NewLegend = ' >90 Days Late';
$NewValues = array(array('Closed On Time', 'Closed Late'), array(
0,
(int)$ecdClosureStatus['MoreThanNinetyDaysLate']
));
$TBS->PlugIn(OPENTBS_CHART, $ChartNameOrNum, $SeriesNameOrNum, $NewValues, $NewLegend);发布于 2016-01-14 17:40:52
您的代码似乎ok.The问题可能来自于系列#3,它可能不会像您预期的那样在内部命名。重复检查电子表格查看器中的名称,最后必须没有空格。您还可以尝试使用Ms中的“修改数据”按钮。
不过,您可以使用新的OpenTBS命令来返回图表的数据。它是OpenTBS测试版1.9.5中的avaibale,但它是稳定的。
命令:
$data = $TBS->PlugIn(OPENTBS_CHART_INFO, 'chart3');
var_dump($data);https://stackoverflow.com/questions/34781907
复制相似问题