The key thing that I want to achieve is to allow the data to be edited via the underlying worksheet.
Attached is a spreadsheet where I cleared the workbook. I am unable to edit the data, although it does display the dots. Here is the code for it.
public static void testScatterCleanWithClear()
{
Presentation pres = new Presentation();
<span style="color:#cc99cc;">ISlide</span> slide <span style="color:#6699cc;">=</span> pres<span style="color:#6699cc;">.</span>Slides[<span style="color:#f99157;">0</span>];
<span style="color:#747369;">//Creating the default chart</span>
<span style="color:#cc99cc;">IChart</span> chart <span style="color:#6699cc;">=</span> slide<span style="color:#6699cc;">.</span>Shapes<span style="color:#6699cc;">.</span>AddChart(<span style="color:#66cccc;">ChartType</span><span style="color:#6699cc;">.</span>ScatterWithMarkers, <span style="color:#f99157;">0</span>, <span style="color:#f99157;">0</span>, <span style="color:#f99157;">400</span>, <span style="color:#f99157;">400</span>);
<span style="color:#747369;">//Getting the default chart data worksheet index</span>
<span style="color:#cc99cc;">int</span> defaultWorksheetIndex <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0</span>;
<span style="color:#747369;">//Accessing the chart data worksheet</span>
<span style="color:#cc99cc;">IChartDataWorkbook</span> fact <span style="color:#6699cc;">=</span> chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>ChartDataWorkbook;
<span style="color:#747369;">//Delete demo series</span>
<span style="color:#cc99cc;">foreach</span> (<span style="color:#cc99cc;">var</span> series <span style="color:#cc99cc;">in</span> chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Series)
{
series<span style="color:#6699cc;">.</span>DataPoints<span style="color:#6699cc;">.</span>Clear();
}
chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Series<span style="color:#6699cc;">.</span>Clear();
chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Categories<span style="color:#6699cc;">.</span>Clear();
chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>ChartDataWorkbook<span style="color:#6699cc;">.</span>Clear(<span style="color:#f99157;">0</span>);
<span style="color:#747369;">//Add new series</span>
<span style="color:#cc99cc;">var</span> seriesNameRow <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0</span>;
<span style="color:#cc99cc;">var</span> initialColumnForSeries <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0</span>;
<span style="color:#cc99cc;">var</span> seriesNameCell <span style="color:#6699cc;">=</span> fact<span style="color:#6699cc;">.</span>GetCell(defaultWorksheetIndex, seriesNameRow, initialColumnForSeries, <span style="color:#99cc99;">"Scatter Values"</span>);
chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Series<span style="color:#6699cc;">.</span>Add(seriesNameCell, chart<span style="color:#6699cc;">.</span>Type);
<span style="color:#747369;">//Take first chart series</span>
<span style="color:#cc99cc;">var</span> chartSeries <span style="color:#6699cc;">=</span> chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Series[<span style="color:#f99157;">0</span>];
<span style="color:#cc99cc;">var</span> mySeriesData <span style="color:#6699cc;">=</span> <span style="color:#cc99cc;">new</span> <span style="color:#ffcc66;">List</span><span style="color:#6699cc;"><</span><span style="color:#ffcc66;">Item</span><span style="color:#6699cc;">></span>
{
<span style="color:#cc99cc;">new</span> <span style="color:#ffcc66;">Item</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">1</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"foo"</span>},
<span style="color:#cc99cc;">new</span> <span style="color:#ffcc66;">Item</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2.2</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"baz"</span>},
<span style="color:#cc99cc;">new</span> <span style="color:#ffcc66;">Item</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0.5</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">1.2</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"argh"</span>},
<span style="color:#cc99cc;">new</span> <span style="color:#ffcc66;">Item</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2.5</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"green"</span>},
<span style="color:#cc99cc;">new</span> <span style="color:#ffcc66;">Item</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">5</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">3</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"knee"</span>}
};
<span style="color:#cc99cc;">int</span> row <span style="color:#6699cc;">=</span> <span style="color:#f99157;">1</span>;
<span style="color:#cc99cc;">int</span> xCol <span style="color:#6699cc;">=</span> <span style="color:#f99157;">1</span>, yCol <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2</span>, categoryCol <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0</span>;
<span style="color:#cc99cc;">foreach</span> (<span style="color:#cc99cc;">var</span> data <span style="color:#cc99cc;">in</span> mySeriesData)
{
<span style="color:#cc99cc;">var</span> chartData <span style="color:#6699cc;">=</span> chartSeries<span style="color:#6699cc;">.</span>Chart<span style="color:#6699cc;">.</span>ChartData;
<span style="color:#cc99cc;">var</span> xValueCell <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>ChartDataWorkbook<span style="color:#6699cc;">.</span>GetCell(defaultWorksheetIndex, row, xCol, data<span style="color:#6699cc;">.</span>X);
<span style="color:#cc99cc;">var</span> yValueCell <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>ChartDataWorkbook<span style="color:#6699cc;">.</span>GetCell(defaultWorksheetIndex, row, yCol, data<span style="color:#6699cc;">.</span>Y);
<span style="color:#cc99cc;">var</span> dataPoint <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>Series[<span style="color:#f99157;">0</span>]<span style="color:#6699cc;">.</span>DataPoints<span style="color:#6699cc;">.</span>AddDataPointForScatterSeries(xValueCell, yValueCell);
<span style="color:#cc99cc;">var</span> categoryDataCell <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>ChartDataWorkbook<span style="color:#6699cc;">.</span>GetCell(defaultWorksheetIndex, row, categoryCol, data<span style="color:#6699cc;">.</span>Category);
<span style="color:#cc99cc;">var</span> category <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>Categories<span style="color:#6699cc;">.</span>Add(categoryDataCell);
row <span style="color:#6699cc;">+=</span> <span style="color:#f99157;">1</span>;
}
<span style="color:#747369;">//Changing the chart series marker</span>
chartSeries<span style="color:#6699cc;">.</span>Marker<span style="color:#6699cc;">.</span>Size <span style="color:#6699cc;">=</span> <span style="color:#f99157;">10</span>;
chartSeries<span style="color:#6699cc;">.</span>Marker<span style="color:#6699cc;">.</span>Symbol <span style="color:#6699cc;">=</span> <span style="color:#66cccc;">MarkerStyleType</span><span style="color:#6699cc;">.</span>Diamond;
<span style="color:#cc99cc;">foreach</span> (<span style="color:#cc99cc;">IDataLabel</span> label <span style="color:#cc99cc;">in</span> chartSeries<span style="color:#6699cc;">.</span>Labels)
{
<span style="color:#cc99cc;">IDataLabelFormat</span> FormatLabel <span style="color:#6699cc;">=</span> label<span style="color:#6699cc;">.</span>DataLabelFormat;
FormatLabel<span style="color:#6699cc;">.</span>ShowCategoryName <span style="color:#6699cc;">=</span> <span style="color:#cc99cc;">true</span>;
FormatLabel<span style="color:#6699cc;">.</span>ShowSeriesName <span style="color:#6699cc;">=</span> <span style="color:#cc99cc;">true</span>;
FormatLabel<span style="color:#6699cc;">.</span>ShowValue <span style="color:#6699cc;">=</span> <span style="color:#cc99cc;">true</span>;
}
pres<span style="color:#6699cc;">.</span>Save(<span style="color:#99cc99;">"C:\\temp\\AsposeScatterChart - ClearedWorksheet.pptx"</span>, <span style="color:#66cccc;">SaveFormat</span><span style="color:#6699cc;">.</span>Pptx);
}</pre></div><div><br></div><div><br></div><div>I've also attached an example chart where I've explicitly set the label text on each datapoint. However, this clearly breaks the links to the underlying data on the worksheet. Is this the only way to do it? (Code follows)</div><div><br></div><div><pre style="font-family:Consolas;font-size:13;color:#d3d0c8;background:#272727;"> <span style="color:#cc99cc;">public</span> <span style="color:#cc99cc;">static</span> <span style="color:#cc99cc;">void</span> testScatterCleanWithLabels()
{
<span style="color:#ffcc66;">Presentation</span> pres <span style="color:#6699cc;">=</span> <span style="color:#cc99cc;">new</span> <span style="color:#ffcc66;">Presentation</span>();
<span style="color:#cc99cc;">ISlide</span> slide <span style="color:#6699cc;">=</span> pres<span style="color:#6699cc;">.</span>Slides[<span style="color:#f99157;">0</span>];
<span style="color:#747369;">//Creating the default chart</span>
<span style="color:#cc99cc;">IChart</span> chart <span style="color:#6699cc;">=</span> slide<span style="color:#6699cc;">.</span>Shapes<span style="color:#6699cc;">.</span>AddChart(<span style="color:#66cccc;">ChartType</span><span style="color:#6699cc;">.</span>ScatterWithMarkers, <span style="color:#f99157;">0</span>, <span style="color:#f99157;">0</span>, <span style="color:#f99157;">400</span>, <span style="color:#f99157;">400</span>);
<span style="color:#747369;">//Getting the default chart data worksheet index</span>
<span style="color:#cc99cc;">int</span> defaultWorksheetIndex <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0</span>;
<span style="color:#747369;">//Accessing the chart data worksheet</span>
<span style="color:#cc99cc;">IChartDataWorkbook</span> fact <span style="color:#6699cc;">=</span> chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>ChartDataWorkbook;
<span style="color:#747369;">//Delete demo series</span>
<span style="color:#cc99cc;">foreach</span> (<span style="color:#cc99cc;">var</span> series <span style="color:#cc99cc;">in</span> chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Series)
{
series<span style="color:#6699cc;">.</span>DataPoints<span style="color:#6699cc;">.</span>Clear();
}
chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Series<span style="color:#6699cc;">.</span>Clear();
chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Categories<span style="color:#6699cc;">.</span>Clear();
<span style="color:#747369;">//Add new series</span>
<span style="color:#cc99cc;">var</span> seriesNameRow <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0</span>;
<span style="color:#cc99cc;">var</span> initialColumnForSeries <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0</span>;
<span style="color:#cc99cc;">var</span> seriesNameCell <span style="color:#6699cc;">=</span> fact<span style="color:#6699cc;">.</span>GetCell(defaultWorksheetIndex, seriesNameRow, initialColumnForSeries, <span style="color:#99cc99;">"Scatter Values"</span>);
chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Series<span style="color:#6699cc;">.</span>Add(seriesNameCell, chart<span style="color:#6699cc;">.</span>Type);
<span style="color:#747369;">//Take first chart series</span>
<span style="color:#cc99cc;">var</span> chartSeries <span style="color:#6699cc;">=</span> chart<span style="color:#6699cc;">.</span>ChartData<span style="color:#6699cc;">.</span>Series[<span style="color:#f99157;">0</span>];
<span style="color:#cc99cc;">var</span> mySeriesData <span style="color:#6699cc;">=</span> <span style="color:#cc99cc;">new</span> []
{
<span style="color:#cc99cc;">new</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">1.0</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2.0</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"foo"</span>},
<span style="color:#cc99cc;">new</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2.0</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2.2</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"baz"</span>},
<span style="color:#cc99cc;">new</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0.5</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">1.2</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"argh"</span>},
<span style="color:#cc99cc;">new</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2.5</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2.0</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"green"</span>},
<span style="color:#cc99cc;">new</span> { X <span style="color:#6699cc;">=</span> <span style="color:#f99157;">5.0</span>, Y <span style="color:#6699cc;">=</span> <span style="color:#f99157;">3.0</span>, Category <span style="color:#6699cc;">=</span> <span style="color:#99cc99;">"knee"</span>}
};
<span style="color:#cc99cc;">int</span> row <span style="color:#6699cc;">=</span> <span style="color:#f99157;">1</span>;
<span style="color:#cc99cc;">int</span> xCol <span style="color:#6699cc;">=</span> <span style="color:#f99157;">1</span>, yCol <span style="color:#6699cc;">=</span> <span style="color:#f99157;">2</span>, categoryCol <span style="color:#6699cc;">=</span> <span style="color:#f99157;">0</span>;
<span style="color:#cc99cc;">foreach</span> (<span style="color:#cc99cc;">var</span> data <span style="color:#cc99cc;">in</span> mySeriesData)
{
<span style="color:#cc99cc;">var</span> chartData <span style="color:#6699cc;">=</span> chartSeries<span style="color:#6699cc;">.</span>Chart<span style="color:#6699cc;">.</span>ChartData;
<span style="color:#cc99cc;">var</span> xValueCell <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>ChartDataWorkbook<span style="color:#6699cc;">.</span>GetCell(defaultWorksheetIndex, row, xCol, data<span style="color:#6699cc;">.</span>X);
<span style="color:#cc99cc;">var</span> yValueCell <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>ChartDataWorkbook<span style="color:#6699cc;">.</span>GetCell(defaultWorksheetIndex, row, yCol, data<span style="color:#6699cc;">.</span>Y);
<span style="color:#cc99cc;">var</span> dataPoint <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>Series[<span style="color:#f99157;">0</span>]<span style="color:#6699cc;">.</span>DataPoints<span style="color:#6699cc;">.</span>AddDataPointForScatterSeries(xValueCell, yValueCell);
<span style="color:#cc99cc;">var</span> categoryDataCell <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>ChartDataWorkbook<span style="color:#6699cc;">.</span>GetCell(defaultWorksheetIndex, row, categoryCol, data<span style="color:#6699cc;">.</span>Category);
<span style="color:#cc99cc;">var</span> category <span style="color:#6699cc;">=</span> chartData<span style="color:#6699cc;">.</span>Categories<span style="color:#6699cc;">.</span>Add(categoryDataCell);
dataPoint<span style="color:#6699cc;">.</span>Label<span style="color:#6699cc;">.</span>AsIOverridableText<span style="color:#6699cc;">.</span>TextFrameForOverriding<span style="color:#6699cc;">.</span>Text <span style="color:#6699cc;">=</span> data<span style="color:#6699cc;">.</span>Category;
dataPoint<span style="color:#6699cc;">.</span>Label<span style="color:#6699cc;">.</span>TextFrameForOverriding<span style="color:#6699cc;">.</span>Paragraphs[<span style="color:#f99157;">0</span>]<span style="color:#6699cc;">.</span>Portions[<span style="color:#f99157;">0</span>]<span style="color:#6699cc;">.</span>PortionFormat<span style="color:#6699cc;">.</span>FontHeight <span style="color:#6699cc;">=</span> <span style="color:#f99157;">10</span>;
row <span style="color:#6699cc;">+=</span> <span style="color:#f99157;">1</span>;
}
<span style="color:#747369;">//Changing the chart series marker</span>
chartSeries<span style="color:#6699cc;">.</span>Marker<span style="color:#6699cc;">.</span>Size <span style="color:#6699cc;">=</span> <span style="color:#f99157;">10</span>;
chartSeries<span style="color:#6699cc;">.</span>Marker<span style="color:#6699cc;">.</span>Symbol <span style="color:#6699cc;">=</span> <span style="color:#66cccc;">MarkerStyleType</span><span style="color:#6699cc;">.</span>Diamond;
pres<span style="color:#6699cc;">.</span>Save(<span style="color:#99cc99;">"C:\\temp\\AsposeScatterChart - Labeled.pptx"</span>, <span style="color:#66cccc;">SaveFormat</span><span style="color:#6699cc;">.</span>Pptx);
}</pre></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>