Solved

Reading Cell Values In Excel 2000 Using C++

Posted on 2007-11-15
2
280 Views
Last Modified: 2013-11-20
I have an Excel 2000 spreadsheet that I am trying to read data from using C++.  I have used the code in the following link to get me started and this works well.

http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_20642013.html

I am now trying to tweak the code so rather than create a new spreadsheet, I open an existing one (which I have figured out how to do), and then read the data in a given cell (which I can't do).  I have found numerous examples of Excel automation on the internet, but have yet to find one that shows how to do this.  Any help would be greatly appreciated.
0
Comment
Question by:reidy_boy
2 Comments
 
LVL 86

Accepted Solution

by:
jkr earned 200 total points
ID: 20289477
Take a look at http://www.codeproject.com/useritems/HOOK_COM.asp ("Get Cell Text of Excel"):


COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
 
    _Application objApp;
    Window objWin;
 
    Range objRange;
    VARIANT ret;
    
    CLSID clsid ;
    if (CLSIDFromProgID(OLESTR("Excel.Application.9"), &clsid) == NOERROR)
    {
     // Recherche du server Excel s'il est lance
     LPUNKNOWN lpUnk ;
     LPDISPATCH lpDispatch ;
     if (GetActiveObject(clsid, NULL, &lpUnk) == S_OK)
     {
      HRESULT hr = lpUnk->QueryInterface(IID_IDispatch, (LPVOID*)&lpDispatch) ;
      lpUnk->Release() ;
      if (hr == NOERROR)
      {
       objApp.AttachDispatch(lpDispatch, TRUE) ;
      }
     }
    }
 
    objWin = objApp.GetActiveWindow();
    objRange = objWin.GetActiveCell();
    ret = objRange.GetValue();
 
    BSTR txt;
    txt = ret.bstrVal;
    char *p=_com_util::ConvertBSTRToString(txt); 

Open in new window

0
 
LVL 1

Author Closing Comment

by:reidy_boy
ID: 31409308
Took a bit of playing around with, but got there in the end.  I realised other examples weren't working because I had the wrong .olb version installed for Excel 2000, but this solution included the code that I sould have been using.  Excellent, thanks.
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
Do you use a spreadsheet like Microsoft's Excel?  Have you ever wanted to link out to a non excel file on your computer or network drive?  This is the way I found to do it!
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

792 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question