Dear Toddba,
I have concluded that you cannot get rid of chart getting scaled down completely, because whenever you will double click the chart to view it, it will be rescaled by its server application that run inside the PowerPoint.
I have finally discovered an alternative viable solution to your problem. The solution is to use Excel Chart inside the PowerPoint instead of Graph Chart, then manipulate it with Aspose.Cells.
Below is the code that reads the Excel Chart from a source presentation; updates the values of its columns, then write the modified chart onto new slide and finally write the presentation to disk.
In this code, you don’t need to write the modified chart on disk and read back. Everything is done in main memory.
I have fully commented the code for your better understanding and also attached the source presentation and output presentation to view. You should also generate output presentation and see the modified chart by double clicking and then clicking Chart1 tab below
Hopefully, this code would be helpful for you. You can download the evaluation version of Aspose.Cells from here.
Take care and have a nice day.
void AddExcelChart()
{
//Source presentation contains Excel Chart object,
//Which was inserted inside the slide using Insert-->Object
Presentation srcPres = new Presentation("srcExcelChart.ppt");
Slide fstSlide = srcPres.GetSlideByPosition(1);
//The alternative text of the source is set as oleobject
//to get its reference quickly
Shape srcShape = fstSlide.FindShape("oleobject");
OleObjectFrame msExcelObj = srcShape as OleObjectFrame;
//Create a workbook
Workbook wb = new Workbook();
//Open the Excel Chart inside the workbook
MemoryStream ms = new MemoryStream(msExcelObj.ObjectData);
wb.Open(ms);
//Change the February bars
wb.Worksheets[1].Cells[2, 1].PutValue(25);
wb.Worksheets[1].Cells[2, 2].PutValue(25);
wb.Worksheets[1].Cells[2, 3].PutValue(25);
//Now save back the modified workbook to memory stream
MemoryStream ms2 = wb.SaveToStream();
//Read the new memory stream into new buffer
byte[] newBuf = new byte[ms2.Length];
ms2.Position = 0;
ms2.Read(newBuf, 0, newBuf.Length);
//Add a new slide with new oleobjectframe and set its objectdata with new buffer
Slide sld=srcPres.AddEmptySlide();
sld.Shapes.AddOleObjectFrame(msExcelObj.X, msExcelObj.Y, msExcelObj.Width,
msExcelObj.Height, msExcelObj.ObjectClassName, newBuf);
//Write the presentation on disk
srcPres.Write("outExcelChart.ppt");
//Now look at the second slide, doubl click it, then click chart tab at
//the bottom with three other tabs and see the modified chart
}