View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
stevo stevo is offline
external usenet poster
 
Posts: 3
Default C++ and Excel : Need Simple Charting Example (I can populate sheet with Data)

Yes, Thanks Tom.








"Tom Ogilvy" wrote in message ...
http://support.microsoft.com/default...48&Product=vcc

look at step 9 - it talks about excel.h

does that help?

--
Regards,
Tom Ogilvy


"stevo" wrote in message
om...
I found the following article on MSDN.

How To Use MFC to Create a Microsoft Excel Chart
http://support.microsoft.com/default...b;en-us;178783

but is uses #include "excel.h" (for Excel 2002) and I don't have
that .h on my computer (I have full install of VC++ .Net and Excel
2002).

Any Ideas?

Thanks
Stephen




"Tom Ogilvy" wrote in message

...
Try searching the knowledge base

http://support.microsoft.com

choose advanced search, then select Visual C++ as product and search on
terms like

Excel Chart

--
Regards,
Tom Ogilvy

"stevo" wrote in message
om...
I am using Microsoft Viusal C++ .Net (unmanaged MFC Application)
and Excel 2002.

I have been able to create and Excel worksheet and fill it with data
from my C++ program. However, I can't figure out how to create a
chart.

I can't find enough documentation on CChart to figure out how to
create a chart.

Can someone show me a simply example or point me to the right
literature?

Thanks
Stephen

Below is my code that creates the excel sheet and populates it with
data:

CApplication oExcel;
CWorkbook oBook;
CWorkbooks oBooks;
CWorksheets oSheets;
CWorksheet oSheet;
CRange oRange;
CChart oChart;
COleVariant covOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
oExcel.CreateDispatch("Excel.Application");

oBooks = oExcel.get_Workbooks();
oBook = oBooks.Add(covOptional);
oSheets = oBook.get_Worksheets();
oSheet = oSheets.get_Item(COleVariant((short)1));
oChart = oBook.get_Charts();
oExcel.put_Visible(TRUE);
oExcel.put_UserControl(TRUE);


COleSafeArray saRet;
COleSafeArray saDateTime;
COleSafeArray saPhaseAdjustmentAngles;


DWORD numElements[2];
numElements[0] = NumberOfCallIns;
numElements[1] = NumberOfCallIns;


// Get a range of data.
oRange = oSheet.get_Range(COleVariant("C13"),covOptional);
oRange =

oRange.get_Resize(COleVariant((short)NumberOfCallI ns),COleVariant((short)24)
);
saRet.Create(VT_R8,2,numElements);


long index[2];
for (int iRow = 1; iRow < NumberOfCallIns; iRow++) {
for (int iCol = 1; iCol <= 24; iCol++) {
index[0]=iRow-1;
index[1]=iCol-1;
outBug << iRow << "\t" << iCol << endl;


saRet.PutElement(index,&StoreValuesForOutput[iCol][iRow]);