嗨@Scanny
我基本上试图将折线图和条形图结合起来访问其XML。
我试图通过opc提取XML。
我希望有机变化系列是折线图,而体积变化系列是同一图表中的条形图。
是否有内置功能,或者我必须自己编写?
<c:chart>\n
<c:plotArea>\n
<c:barChart>\n
<c:barDir val="col"/>\n
<c:grouping val="stacked"/>\n
<c:ser>\n
<c:idx val="0"/>\n
<c:order val="0"/>\n
<c:tx>\n
<c:strRef>\n
<c:f>Sheet1!$B$1</c:f>\n
<c:strCache>\n
<c:ptCount val="1"/>\n
<c:pt idx="0">\n
<c:v>Organic Change</c:v>\n
</c:pt>\n
</c:strCache>\n
</c:strRef>\n
</c:tx>\n
<c:invertIfNegative val="0"/>\n
<c:dPt>\n
<c:idx val="0"/>\n
<c:marker>\n
<c:spPr>\n
<a:solidFill>\n
<a:srgbClr val="D0E4A6"/>\n
</a:solidFill>\n
</c:spPr>\n
</c:marker>\n
<c:spPr>\n
<a:solidFill>\n
<a:srgbClr val="D0E4A6"/>\n
</a:solidFill>\n
</c:spPr>\n
</c:dPt>\n
<c:cat>\n
<c:strRef>\n
<c:f>Sheet1!$A$2:$A$2</c:f>\n
<c:strCache>\n
<c:ptCount val="1"/>\n
<c:pt idx="0">\n
<c:v>Toothpaste</c:v>\n
</c:pt>\n
</c:strCache>\n
</c:strRef>\n
</c:cat>\n
<c:val>\n
<c:numRef>\n
<c:f>Sheet1!$B$2:$B$2</c:f>\n
<c:numCache>\n
<c:formatCode>General</c:formatCode>\n
<c:ptCount val="1"/>\n
<c:pt idx="0">\n
<c:v>2.4</c:v>\n
</c:pt>\n
</c:numCache>\n
</c:numRef>\n
</c:val>\n
</c:ser>\n
<c:ser>\n
<c:idx val="1"/>\n
<c:order val="1"/>\n
<c:tx>\n
<c:strRef>\n
<c:f>Sheet1!$C$1</c:f>\n
<c:strCache>\n
<c:ptCount val="1"/>\n
<c:pt idx="0">\n
<c:v>Volume Change</c:v>\n
</c:pt>\n
</c:strCache>\n
</c:strRef>\n
</c:tx>\n
<c:invertIfNegative val="0"/>\n
<c:dPt>\n
<c:idx val="0"/>\n
<c:marker>\n
<c:spPr>\n
<a:solidFill>\n
<a:srgbClr val="94CEFF"/>\n
</a:solidFill>\n
</c:spPr>\n
</c:marker>\n
<c:spPr>\n
<a:solidFill>\n
<a:srgbClr val="94CEFF"/>\n
</a:solidFill>\n
</c:spPr>\n
</c:dPt>\n
<c:cat>\n
<c:strRef>\n
<c:f>Sheet1!$A$2:$A$2</c:f>\n
<c:strCache>\n
<c:ptCount val="1"/>\n
<c:pt idx="0">\n
<c:v>Toothpaste</c:v>\n
</c:pt>\n
</c:strCache>\n
</c:strRef>\n
</c:cat>\n
<c:val>\n
<c:numRef>\n
<c:f>Sheet1!$C$2:$C$2</c:f>\n
<c:numCache>\n
<c:formatCode>General</c:formatCode>\n
<c:ptCount val="1"/>\n
<c:pt idx="0">\n
<c:v>0.5</c:v>\n
</c:pt>\n
</c:numCache>\n
</c:numRef>\n
</c:val>\n
</c:ser>\n
<c:gapWidth val="15"/>\n
<c:overlap val="100"/>\n
<c:axId val="-2068027336"/>\n
<c:axId val="-2113994440"/>\n
</c:barChart>\n
<c:catAx>\n
<c:axId val="-2068027336"/>\n
<c:scaling>\n
<c:orientation val="minMax"/>\n
</c:scaling>\n
<c:delete val="0"/>\n
<c:axPos val="b"/>\n
<c:majorTickMark val="none"/>\n
<c:minorTickMark val="none"/>\n
<c:tickLblPos val="none"/>\n
<c:txPr>\n
<a:bodyPr/>\n
<a:lstStyle/>\n
<a:p>\n
<a:pPr>\n
<a:defRPr sz="1000" b="1"/>\n
</a:pPr>\n
</a:p>\n
</c:txPr>\n
<c:crossAx val="-2113994440"/>\n
<c:crosses val="autoZero"/>\n
<c:auto val="1"/>\n
<c:lblAlgn val="ctr"/>\n
<c:lblOffset val="100"/>\n
<c:noMultiLvlLbl val="0"/>\n
</c:catAx>\n
<c:valAx>\n
<c:axId val="-2113994440"/>\n
<c:scaling/>\n
<c:delete val="0"/>\n
<c:axPos val="l"/>\n
<c:majorTickMark val="none"/>\n
<c:minorTickMark val="none"/>\n
<c:tickLblPos val="nextTo"/>\n
<c:txPr>\n
<a:bodyPr/>\n
<a:lstStyle/>\n
<a:p>\n
<a:pPr>\n
<a:defRPr sz="1000"/>\n
</a:pPr>\n
</a:p>\n
</c:txPr>\n
<c:crossAx val="-2068027336"/>\n
<c:crosses val="autoZero"/>\n
</c:valAx>\n
</c:plotArea>\n
<c:legend>\n
<c:legendPos val="b"/>\n
<c:txPr>\n
<a:bodyPr/>\n
<a:lstStyle/>\n
<a:p>\n
<a:pPr>\n
<a:defRPr sz="1200"/>\n
</a:pPr>\n
</a:p>\n
</c:txPr>\n
</c:legend>\n
<c:dispBlanksAs val="gap"/>\n
</c:chart>\n
<c:txPr>\n
<a:bodyPr/>\n
<a:lstStyle/>\n
<a:p>\n
<a:pPr>\n
<a:defRPr sz="1800"/>\n
</a:pPr>\n
<a:endParaRPr lang="en-US"/>\n
</a:p>\n
</c:txPr>\n
<c:externalData r:id="rId1">\n
<c:autoUpdate val="0"/>\n
</c:externalData>\n
</c:chartSpace>\n'