我正在尝试创建嵌入在PowerPoint模板幻灯片中的堆叠条形图,如下所示。当我在下面运行我的脚本时,我收到了一个错误。
TinyButStrong错误OpenTBS插件:(ChartChangeSeries)'chart3': 无法在图表'chart3'中找到系列'Series 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);
答案 0 :(得分:2)
你的代码似乎没问题。问题可能来自于#3系列,它可能没有像你期望的那样在内部命名。仔细检查电子表格查看器中的名称,最后必须没有空格。您也可以尝试使用“修改Excel中的数据”按钮。
然而,您可以使用返回图表数据的新OpenTBS命令。它是OpenTBS beta version 1.9.5中的avaibale,但它很稳定。
命令:
$data = $TBS->PlugIn(OPENTBS_CHART_INFO, 'chart3');
var_dump($data);
答案 1 :(得分:0)
我将每个系列的$ NewValues数组修改为两个元素的数组,第一个元素是x轴值,第二个元素是y轴值。 x轴值是两个值的数组("封闭时间","封闭后期"),y轴是两个元素的数组(一个元素为零,并且其他是该x值的值(按时关闭或迟到)
输出图表
示例强>
public void Bold(View view) {
ScrollTextView mScrollTextView = (ScrollTextView) findViewById(R.id.scroll_text_main);
if(mScrollTextView.getTypeface()!=null){
if(mScrollTextView.getTypeface().getStyle() == Typeface.ITALIC){
mScrollTextView.setText("if italic, then change to bold_italico");
mScrollTextView.setTypeface(null, Typeface.BOLD_ITALIC);
}
if(mScrollTextView.getTypeface().getStyle() == Typeface.BOLD_ITALIC){
//mScrollTextView.setText("boudi italico!");
mScrollTextView.setTypeface(null, Typeface.ITALIC);
}
else if(!mScrollTextView.getTypeface().isBold()){
mScrollTextView.setTypeface(Typeface.DEFAULT_BOLD);
} else {
mScrollTextView.setTypeface(Typeface.DEFAULT);
}
}
}
解决方案代码
$NewValues = array(array('Closed On Time', 'Closed Late'), array(
(int)$ecdClosureStatus['ClosedOnTime'],
0
));