Additionally, does it work if you decompose the statement in 2:

wbs = xlapp.Workbooks
wb = wbs.Open(fname)

Michael.


On Wed, Jun 29, 2011 at 5:18 PM, Michael Goffioul
<michael.goffi...@gmail.com> wrote:
> The java package uses the same system, so if it works for java object, it 
> should
> logically also work for COM objects. By looking at the code for both, I can't
> see any obvious difference. Some debugging might be needed, but I can't
> investigate at the moment.
>
> Michael.
>
>
> On Wed, Jun 29, 2011 at 11:07 AM, Philip Nienhuis <pr.nienh...@hccnet.nl> 
> wrote:
>> Hi Michael,
>>
>> While trying the windows package with Tatsuro Matsuoka's octave-3.4.2 MingW
>> testing binary, I hit an old error:
>>
>> =========================================
>> octave.exe:29> xlapp = actxserver ('Excel.Application')
>> xlapp =
>>
>> <COM object _Application (0x0x2767d4)>
>>
>> octave.exe:30> wb = xlapp.Workbooks.Open (fname)
>> error: can't perform indexing operations for octave_com_object type
>> octave.exe:30> fname
>> fname = C:\Home\Philip\Mydocs\Octave\spreadsheet-tst\test75.xls
>> =========================================
>>
>> Apart from some warnings in grab.cc, the windows package installed fine; the
>> messagebox & com_<> function work OK.
>> But the object-oriented stuff doesn't work.
>>
>> Using the com_get() / get() & com_invoke() (also get() ) functions I can
>> work with the Excel file, but this is a bit of a hassle.
>>
>> From the info in your answer from 2 years back (copied below), I conclude it
>> must be related to the dispatch() stuff. I got this warning when compiling
>> the windows package:
>>
>> "warning: dispatch is obsolete and will be removed from a future version of
>> Octave; please use classes instead"
>>
>> .... from which I conclude that dispatch() should still work, however.
>>
>> Where can I look to get past this error?
>>
>> I've copied the install log (-verbose flag) of pkg install to this e-mail.
>>
>> Thanks,
>>
>> Philip
>>
>>
>> Michael Goffioul wrote:
>>>
>>> On Sun, Jun 21, 2009 at 11:08 AM, Philip Nienhuis<pr.nienh...@hccnet.nl>
>>>  wrote:
>>
>> <snip>
>>>>
>>>> 1. Any hints on Where can I find more info on the web about com_****
>>>> functions? I'm not quite proficient with COM, I used some info I found in
>>>> your example mat2xls script (fairly basic) and in contributed background
>>>> docs on the Mathworks site (a bit more elaborate).
>>>
>>> There are not much to say about that, these functions are just the
>>> functional counterpart of the COM indexing you're used to. For instance,
>>> when octave reads obj.prop and obj is a COM object, it ends up calling
>>> com_get(obj, 'prop'). The available functions are:
>>>
>>> com_get(obj, 'prop') =>  obj.prop
>>> com_set(obj, 'prop', val) =>  obj.prop = val
>>> com_invoke(obj, 'fun', arg0, ...) =>  obj.fun(arg0, ...)
>>> com_delete(obj) =>  release the COM object
>>> com_release(obj) =>  identical to com_celete(obj)
>>>
>>> Now, because all these functions are also "dispatch"-ed, you can
>>> use them without the "com_" prefix. That is get(obj, 'prop'),
>>> invoke(obj, 'fun', arg0, ...)
>>> and so on.
>>
>>
>>
>>
>

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to