protected function writeMultipleValuesOrReference($objWriter, $isReference, $values, $reference)
{
// c:strLit / c:numLit
// c:strRef / c:numRef
$referenceType = $isReference ? 'Ref' : 'Lit';
$dataType = 'str';
if (is_int($values[0]) || is_float($values[0])) {
$dataType = 'num';
}
$objWriter->startElement('c:' . $dataType . $referenceType);
$numValues = count($values);
if (!$isReference) {
// Value
// c:ptCount
$objWriter->startElement('c:ptCount');
$objWriter->writeAttribute('val', count($values));
$objWriter->endElement();
// Add points
for ($i = 0; $i < $numValues; $i++) {
// c:pt
$objWriter->startElement('c:pt');
$objWriter->writeAttribute('idx', $i);
$objWriter->writeElement('c:v', $values[$i]);
$objWriter->endElement();
}
} else {
// Reference
$objWriter->writeElement('c:f', $reference);
$objWriter->startElement('c:' . $dataType . 'Cache');
// c:ptCount
$objWriter->startElement('c:ptCount');
$objWriter->writeAttribute('val', count($values));
$objWriter->endElement();
// Add points
for ($i = 0; $i < $numValues; $i++) {
// c:pt
$objWriter->startElement('c:pt');
$objWriter->writeAttribute('idx', $i);
$objWriter->writeElement('c:v', $values[$i]);
$objWriter->endElement();
}
$objWriter->endElement();
}
$objWriter->endElement();
}