# Parseexcel, how to select a worksheet using the name

**URL:** <https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363>\
**Category:** Ruby\
**Created:** [October 15, 2009, 4:52pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363 "2009-10-15T16:52:58Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [October 15, 2009, 4:52pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363/1 "2009-10-15T16:52:58Z")

</div>

Hi,  
I know it’s possible to select a worksheet using its number but I don’t  
know how to select it using the worksheet name. is it possible?

workbook = Spreadsheet::ParseExcel.parse(file)  
worksheet = workbook.worksheet(2)

thanks.

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [October 15, 2009, 6:23pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363/2 "2009-10-15T18:23:01Z")

</div>

On Thu, Oct 15, 2009 at 07:53, Mario R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi,  
> I know it’s possible to select a worksheet using its number Â but I don’t  
> know how to select it using the worksheet name. is it possible?
> 
> workbook = Spreadsheet::ParseExcel.parse(file)  
> worksheet = workbook.worksheet(2)
> 
> thanks.

Replace 2 with the name of the worksheet.

worksheet = workbook.worksheet(‘worksheet name’)

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [October 15, 2009, 6:41pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363/3 "2009-10-15T18:41:38Z")

</div>

That was the first thing I tried…  
the error i get: can’t convert String into Integer

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [October 20, 2009, 12:26pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363/4 "2009-10-20T12:26:26Z")

</div>

Any help???

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [October 20, 2009, 6:00pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363/5 "2009-10-20T18:00:39Z")

</div>

So it’s not possible using parseexcel.

Thanks a lot.

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [October 20, 2009, 4:02pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363/6 "2009-10-20T16:02:21Z")

</div>

Mario R. wrote:

> Any help???

require ‘rubygems’  
require ‘spreadsheet’  
file=‘c:/download/test.xls’  
workbook=Spreadsheet.open file

worksheet = workbook.worksheet(1)  
p worksheet.inspect

# \<Spreadsheet::Excel::Worksheet:0x000000015fafa4 @name=Sheet2 …

worksheet = workbook.worksheet(‘Sheet2’)

p worksheet.inspect  
#\<Spreadsheet::Excel::Worksheet:0x000000015fafa4 @name=Sheet2 …

# Start with GUIDE.TXT located

C:\Ruby\lib\ruby\gems\1.8\gems\spreadsheet-0.6.4.1

# hope it helped.

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [October 20, 2009, 7:00pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363/7 "2009-10-20T19:00:21Z")

</div>

Mario R. wrote:

> So it’s not possible using parseexcel.
> 
> Thanks a lot.  
> It it is possible. Take a look at the documentation. Here is a quick  
> example:

require ‘rubygems’  
require ‘parseexcel’  
file=‘c:/download/test.xls’  
workbook = Spreadsheet::ParseExcel.parse(file)  
worksheet = workbook.worksheet(1)  
puts 'worksheet by number is ’ + worksheet.name  
worksheet = workbook.worksheet(‘Sheet2’)  
puts 'worksheet by name is ’ + worksheet.name

[DEPRECATED] By requiring ‘parseexcel’, ‘parseexcel/parseexcel’ and/or  
‘parseexcel/parser’ you are loading a Compatibility layer  
which  
provides a drop-in replacement for the ParseExcel library.  
This  
code makes the reading of Spreadsheet documents less  
efficient and  
will be removed in Spreadsheet version 1.0.0

worksheet by number is Sheet2  
worksheet by name is Sheet2

Pretty much the same as the response by Jacob.

Take a look at your error “can’t convert String into Integer”.  
Hope it helps.

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [October 21, 2009, 12:06pm UTC](https://www.ruby-forum.com/t/parseexcel-how-to-select-a-worksheet-using-the-name/177363/8 "2009-10-21T12:06:54Z")

</div>

Yes that’s what I was trying but it doesn’t work… “can’t convert  
String into Integer”

Running your example what I get is:  
undefined method `name’ for  
#Spreadsheet::ParseExcel::Worksheet:0x3d03ccc (NoMethodError)
