Having Trouble switching to different sheet in excel using sys.oleobject
SOLVED- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Having Trouble switching to different sheet in excel using sys.oleobject
I was able to use python inside testcomplete to open an excel workbook I have and read some values. Now I am trying to change sheets from the default "Sheet1" to "Sheet2"
My code is:
def ReadDataFromExcel():
Excel = Sys.OleObjext["Excel.Application"]
book = Excel.Workbooks.Open("path to excel sheet")
sheet2 = book.Sheets("Sheet2")
.... At this point the code breaks and gives me the error "RuntimeError: The specific object is not callable"
Now if I debug and put a break point right above last step and look at the local variables. The book object is not empty and it recognizes that it has 3 sheets.
Also if I follow the sample from the documentation using "ActiveSheet" the program runs fine.
Does anyone have any ideas on what could be wrong?
Solved! Go to Solution.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do you actually have a typo in this line?
Excel = Sys.OleObjext["Excel.Application"]
(should be OleObject)
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
try this line instead of your, it should work.
sheet2 = book.Sheets.Item("Sheet2")
Thanks
Shankar R
LinkedIn | CG-VAK Software | Bitbucket | shankarr.75@gmail.com
“You must expect great things from you, before you can do them”- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I try that suggestion I get the following error: Python runtime error
TypeError: 'IdispatchIndexedPropertyWrapper' object is not callable
Do you know how I can fix this?
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Marsha, thanks for catching that. I actually had OleObject on my Testcomplete but it is on an offline computer so there was a mistake when I was manually typing the code here.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try
sheet2 = book.Sheets.Item["Sheet2"]
Robert Martin
[Hall of Fame]
Please consider giving a Kudo if I write good stuff
----
Why automate? I do automated testing because there's only so much a human being can do and remain healthy. Sleep is a requirement. So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.
Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Tristan, did you see my error I get when I try that?
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, I did... which is why I suggested a change... change from () to [].
Robert Martin
[Hall of Fame]
Please consider giving a Kudo if I write good stuff
----
Why automate? I do automated testing because there's only so much a human being can do and remain healthy. Sleep is a requirement. So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.
Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oh sorry I couldn't discern that change, but it doesn't throw that error any more after changing to []. Thank you!
