|
You don't need to call CoInitialize() again.
You will need to check to see if the MFC interfaces are dual or not. If they are you can use then as if that are non-automation interfaces. I.e. just go
obj->SomeMethod();
My guess is probably not, in which case you will have to use IDispatch->Invoke(...) which is a real pain.
I'm sure you can find helper code out there on the Web.
|
|
|
|
|
Hi,
I am trying to paste a .txt file onto
an Excel spreadsheet
Off hand it seemed to me the logical
method would be _WorkSheet::Paste
I have done countless google searches
and have yet to come up with C++
exampe of how this method is used
This is the prototype of the method in Excel.h
void Paste(const VARIANT& Destination, const VARIANT& Link);
When I did research on the data type VARIANT the documentation said its a union for many data types
One of them being a LDISPATCH type
The code below is a snipet of the code I have been stuggling with to get the _WorkSheet::Paste method
to work
My logic was to get a LDISPATCH pointer to the range off cells I was trying to paste onto
However I keep on running into exceptions
If anyone could shead some light on this I would be very gratefull
thanks in advance
CI46023App theApp; _Application app; _Workbook objBook; Workbooks objBooks; Worksheets objSheets; _Worksheet objSheet; LPDISPATCH myrangeptr;
app.CreateDispatch("Excel.Application");
objBooks = app.GetWorkbooks();
objBook = objBooks.Add(VOptional);
objSheets = objBook.GetWorksheets();
objSheet = objSheets.GetItem(COleVariant((short)1));
myrangeptr = objSheet.GetRange(COleVariant(TEXT("A1")),COleVariant(TEXT("M34")));
objSheet.Paste((VARIANT &)myrangeptr, COleVariant((short)TRUE));
|
|
|
|
|
I'm not quite sure if the Worksheet.Paste method does what you want. It will copy text from the clipboard to the specified (or current) selection (see Worksheet.Paste Method[^]). Setting the second parameter to TRUE will not copy the text but place a link. So if you have copied the text from the file to the clipboard, you may use this function but should pass FALSE as second parameter (or COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR) as optional value which uses the default).
However, the first (also optional parameter) is a range object. Just declare the object, assign the return value of GetRange() and pass it to Paste() :
Range objRange = objSheet.GetRange(COleVariant(TEXT("A1")),COleVariant(TEXT("M34")));
objSheet.Paste(objRange, COleVariant((short)FALSE));
|
|
|
|
|
Hi,
I am at home now but from what I remember when I tried to build the code with VISUAL C++ 6.0 I got a build error saying cannot convert paramter 1 from const struct &VARIANT to class Range The documentation says it accepts a range object as the first parm
but the prototype for the code is Paste(const &VARIANT,
|
|
|
|
|
Sorry, I overlooked the parameter type.
WorkSheet.GetRange() returns a LPDISPATCH which can be assigned to a Range object. You can use the LPDISPATCH returned by GetRange() or access the underlying IDispatch pointer of an existing Range object using the LPDISPATCH() operator to create the required variant:
VARIANT vtRng;
vtRng.vt = VT_DISPATCH;
vtRng.pdispVal = objSheet.GetRange(COleVariant(TEXT("A1")),COleVariant(TEXT("M34")));
objSheet.Paste(vtRng, COleVariant((short)TRUE));
|
|
|
|
|
Hi,
First off I like to thank Richard MacCutchan with helping in setting up my C++ project to generate the MFC OLE wrappers classes
One strange thing unlike the regualar MFC classes CWinThread, CDialog
There doen't seem to be any MSDN docmentation about any of the methods in the wrapper classes
One can only guess by thier name what they do
thanks
|
|
|
|
|
See here[^].
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Hi,
I am finally begining to understand why the Microsoft article said I should create dialog based ontrol as a MFC app needs a main window
I tried to follow the article in creating the project but I wa a bit confused what the srticle meant by changing the IDOK button IDCRUN
I ended up getting some sort of exception when existing Cdialog::Initinstance I beleive it be a invalid Hwnd for the Dialog
COnceputally then the Excel spread sheet is a control with the Cdialog being the mainwindow
Richard the doumentation you pointed me to was about Wrapper classes as MFC frontends the OLE functions
I was looking for documentation of the type Cdialog::GetDefID in native MFC there would be documentation for Range::SetValue for the wrapper classes
Thanks again
|
|
|
|
|
I keep pointing you to MSDN and various related pieces of documentation, but you keep coming back here asking for the same thing. Try using the tools at your disposal (Google, Bing etc) to find what you are looking for.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
I have asked a lot about how to read PDF files(just like JAWS, a quit good screen reader), what I want to ask is that does anybody know how JAWS make it. I mean,what kind of tech does JAWS take advantage of. I guess it used MSAA.
I'm trying to do the same thing with JAWS now, so I need your help, if anybody has done such things, please help! Appriciate it.
|
|
|
|
|
Hello Bian ChengNan,
With regards to your question, the following link gives you a full and thorough description of the who, what, when, where how.
http://www.indiana.edu/~iuadapts/technology/software/jaws/jaws_faq.html
Hope this helps!
Best of Luck,
With Kind Regards,
April
Comm100 - Leading Live Chat Software Provider
modified 27-May-14 8:34am.
|
|
|
|
|
3Q for your reply. I known what I asked is a little shame. I apologize. I have visited that website but I still do not know how JAWS makes it. I have make it by myself. thanks again.
|
|
|
|
|
Your question is quite interesting actually.
I will be doing more research on it - if I come across anything useful - I will pass it along to you.
Best of Luck!
With Kind Regards,
April
Comm100 - Leading Live Chat Software Provider
modified 27-May-14 8:33am.
|
|
|
|
|
really thanks for your attention
|
|
|
|
|
Hi,
I have been researching how to automate settting cell values in a excel spreadsheet
I have seen a number of examples
with the following code snipet
range.Setvalue(Colevariant(ColeSafeArray &)
It seem from this that the range object has a setvalue method but I have yet to find where this is documented
Any help would be appreciated
Thanks in advance
|
|
|
|
|
I demonstrated how to use Google in my response to your question below, perhaps you could try it for yourself first.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Is the answer XPATH
XPATH represents a range ?
did a word that correctly
|
|
|
|
|
No idea what that means, but it took one single Google search to find this article[^].
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Hi
Looking at that article I think what I am looking for is in that header file
excel8.h or some other header with excel method,properties definations
is this automatically included with office
|
|
|
|
|
ForNow wrote: is this automatically included with office No idea, you need to read the article and any associated links for the details of how to do it.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Would anyone know where the put_visible method is documented
I think its part of the Excel :: Application object
|
|
|
|
|
Why not try this first[^]?
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
IVideoWindow is not part of the Excel programming interface Application, WorkBook, WorkSheet, Range ?
|
|
|
|
|
Is that a statement or a question?
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Hi,
I am running MicroSoft VIsual C++ 6.0 and tryign to wite com application for excel
My first statemt is #import "libid:00020813-0000-0000-C000-000000000046"
This information matches the uuid generated when using OLE/COM viewer and selecting
view libtype from file drop down menu bar
apperantly libid is not right for the version of excel I am running
|
|
|
|