Search code examples
c#excelopenxml

OpenXml- Excel deletes drawing.xml


I am generating an excel file using OpenXml and C#. The problem occurs when I try to add a scatterPlot, excel can not read it and deletes drawing.xml while recovering it. I can not find any significant difference in the Xml generated by my program and that of excel. This is the XML file for ScatterChart generated by program.

 <?xml version="1.0" encoding="utf-8"?>
<c:chartSpace xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
<c:date1904 val="0" />
<c:lang val="en-US" />
<c:chart>
<c:title>
<c:layout />
<c:overlay val="0" />
<c:spPr>
<a:noFill />
<a:ln>
<a:noFill />
</a:ln>
<a:effectLst />
</c:spPr>
<c:txPr>
<a:bodyPr rot="0" spcFirstLastPara="1" vertOverflow="ellipsis" vert="horz" wrap="square" anchor="ctr" anchorCtr="1" />
<a:lstStyle />
<a:p>
<a:pPr>
<a:defRPr sz="1400" b="0" i="0" u="none" strike="noStrike" kern="1200" spc="0" baseline="0">
<a:solidFill>
<a:schemeClr val="tx1">
<a:lumMod val="65000" />
<a:lumOff val="35000" />
</a:schemeClr>
</a:solidFill>
<a:latin typeface="+mn-lt" />
<a:ea typeface="+mn-ea" />
<a:cs typeface="+mn-cs" />
</a:defRPr>
</a:pPr>
<a:endParaRPr lang="en-US" />
</a:p>
</c:txPr>
</c:title>
<c:plotArea>
<c:layout />
<c:scatterChart>
<c:ser>
<c:idx val="0" />
<c:order val="0" />
<c:marker>
<c:symbol val="circle" />
<c:size val="5" />
<c:spPr>
<a:solidFill>
<a:schemeClr val="accent2" />
</a:solidFill>
<a:ln w="9525">
<a:solidFill>
<a:schemeClr val="accent2" />
</a:solidFill>
</a:ln>
</c:spPr>
</c:marker>
<c:xVal>
<c:numRef>
<c:numCache>
<c:pt idx="0">
<c:v>1</c:v>
</c:pt>
<c:pt idx="1">
<c:v>2</c:v>
</c:pt>
<c:pt idx="2">
<c:v>3</c:v>
</c:pt>
<c:pt idx="3">
<c:v>4</c:v>
</c:pt>
<c:pt idx="4">
<c:v>5</c:v>
</c:pt>
<c:pt idx="5">
<c:v>6</c:v>
</c:pt>
<c:pt idx="6">
<c:v>7</c:v>
</c:pt>
</c:numCache>
</c:numRef>
</c:xVal>
<c:yVal>
<c:numRef>
<c:numCache>
<c:pt idx="0">
<c:v>2</c:v>
</c:pt>
<c:pt idx="1">
<c:v>4</c:v>
</c:pt>
<c:pt idx="2">
<c:v>6</c:v>
</c:pt>
<c:pt idx="3">
<c:v>8</c:v>
</c:pt>
<c:pt idx="4">
<c:v>10</c:v>
</c:pt>
<c:pt idx="5">
<c:v>12</c:v>
</c:pt>
<c:pt idx="6">
<c:v>14</c:v>
</c:pt>
</c:numCache>
</c:numRef>
</c:yVal>
</c:ser>
<c:scatterStyle val="line" />
<c:dLbls>
<c:delete val="1" />
</c:dLbls>
<c:axId val="1848291296" />
<c:axId val="1848283680" />
</c:scatterChart>
<c:valAx>
<c:axId val="1848291296" />
<c:scaling>
<c:orientation val="minMax" />
<c:orientation val="minMax" />
</c:scaling>
<c:delete val="0" />
<c:axPos val="b" />
<c:majorGridlines>
<c:spPr><a:ln>
<a:solidFill>
<a:schemeClr val="tx1">
<a:lumMod val="50000" />
<a:lumOff val="50000" />
</a:schemeClr>
</a:solidFill>
</a:ln>
</c:spPr>
</c:majorGridlines>
<c:crossAx val="1848291296" />
</c:valAx>
<c:valAx>
<c:axId val="1848283680" />
<c:scaling />
<c:delete val="0" />
<c:axPos val="l" />
<c:majorGridlines>
<c:spPr>
<a:ln>
<a:solidFill>
<a:schemeClr val="tx1">
<a:lumMod val="50000" />
<a:lumOff val="50000" />
</a:schemeClr>
</a:solidFill>
</a:ln>
</c:spPr>
</c:majorGridlines>
<c:crossAx val="1848283680" />
</c:valAx>
</c:plotArea>
<c:plotVisOnly val="1" />
</c:chart>
</c:chartSpace>

Please help me. Thanks.


Solution

  • I was adding a property twice. The code works fine now