# Adding "each" support for a range brought from excel

**URL:** <https://www.ruby-forum.com/t/adding-each-support-for-a-range-brought-from-excel/191672>\
**Category:** IronRuby\
**Created:** [July 16, 2010, 2:10am UTC](https://www.ruby-forum.com/t/adding-each-support-for-a-range-brought-from-excel/191672 "2010-07-16T02:10:17Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![michbukana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@michbukana](https://www.ruby-forum.com/u/michbukana)\
**Post date:** [July 16, 2010, 2:10am UTC](https://www.ruby-forum.com/t/adding-each-support-for-a-range-brought-from-excel/191672/1 "2010-07-16T02:10:17Z")

</div>

Hi,

I’m trying to do the following:

* * *

load\_assembly “Microsoft.Office.Interop.Excel”  
include Microsoft:🏢:Interop

app = Excel::ApplicationClass.new  
worksheet =  
app.workbooks.open(“samename.xlsx”.to\_clr\_string).worksheets[1]

range = worksheet.range(“A1:Z1”.to\_clr\_string)

# at this point I can:

puts range[1].value # works

but I can’t do  
range.each {|r| …}

is there any way of defining, extending the class to accept each (and  
size for the matter) as methods?

Thank you very much

Eduardo B.

---

<div class="post-metadata">

**Author:** ![michbukana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@michbukana](https://www.ruby-forum.com/u/michbukana)\
**Post date:** [July 16, 2010, 5:28pm UTC](https://www.ruby-forum.com/t/adding-each-support-for-a-range-brought-from-excel/191672/2 "2010-07-16T17:28:05Z")

</div>

You can re-open the class that defines a Worksheet Range and include  
Ruby’s  
Enumerable as a mixin

–  
Will G.  
[http://hotgazpacho.org/](http://hotgazpacho.org/)

---

<div class="post-metadata">

**Author:** ![michbukana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@michbukana](https://www.ruby-forum.com/u/michbukana)\
**Post date:** [July 16, 2010, 11:33pm UTC](https://www.ruby-forum.com/t/adding-each-support-for-a-range-brought-from-excel/191672/3 "2010-07-16T23:33:22Z")

</div>

This also seems like something that should ‘just work’… Tomas, any  
idea why it doesn’t

* * *

From: Will G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: Friday, July 16, 2010 8:27 AM  
To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: Re: [Ironruby-core] adding “each” support for a range brought  
from excel

You can re-open the class that defines a Worksheet Range and include  
Ruby’s Enumerable as a mixin

–  
Will G.

> **[hotgazpacho](http://hotgazpacho.org/)**

On Thu, Jul 15, 2010 at 8:10 PM, Eduardo B.  
\<[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:  
Hi,

I’m trying to do the following:

* * *

load\_assembly “Microsoft.Office.Interop.Excel”  
include Microsoft:🏢:Interop

app = Excel::ApplicationClass.new  
worksheet =  
app.workbooks.open(“samename.xlsx”.to\_clr\_string).worksheets[1]

range = worksheet.range(“A1:Z1”.to\_clr\_string)

# at this point I can:

puts range[1].value # works

but I can’t do  
range.each {|r| …}

is there any way of defining, extending the class to accept each (and  
size for the matter) as methods?

Thank you very much

## Eduardo B.

Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

---

<div class="post-metadata">

**Author:** ![michbukana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@michbukana](https://www.ruby-forum.com/u/michbukana)\
**Post date:** [July 17, 2010, 2:31am UTC](https://www.ruby-forum.com/t/adding-each-support-for-a-range-brought-from-excel/191672/4 "2010-07-17T02:31:18Z")

</div>

We don’t support COM enumerators yet.

Tomas

From: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] On Behalf Of Jim D.  
Sent: Friday, July 16, 2010 2:33 PM  
To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: Re: [Ironruby-core] adding “each” support for a range brought  
from excel

This also seems like something that should ‘just work’… Tomas, any  
idea why it doesn’t

* * *

From: Will G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: Friday, July 16, 2010 8:27 AM  
To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: Re: [Ironruby-core] adding “each” support for a range brought  
from excel  
You can re-open the class that defines a Worksheet Range and include  
Ruby’s Enumerable as a mixin

–  
Will G.

> **[hotgazpacho](http://hotgazpacho.org/)**

On Thu, Jul 15, 2010 at 8:10 PM, Eduardo B.  
\<[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:  
Hi,

I’m trying to do the following:

* * *

load\_assembly “Microsoft.Office.Interop.Excel”  
include Microsoft:🏢:Interop

app = Excel::ApplicationClass.new  
worksheet =  
app.workbooks.open(“samename.xlsx”.to\_clr\_string).worksheets[1]

range = worksheet.range(“A1:Z1”.to\_clr\_string)

# at this point I can:

puts range[1].value # works

but I can’t do  
range.each {|r| …}

is there any way of defining, extending the class to accept each (and  
size for the matter) as methods?

Thank you very much

## Eduardo B.

Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
