By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
458,166 Members | 1,775 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 458,166 IT Pros & Developers. It's quick & easy.

New to COM (Excel). Need a little help.

P: n/a
Hi all,

I am trying to write an application where I need the ability to open
an Excel spreadsheet and do basic read/write, insert rows, and
hide/unhide rows. Using win32com I have been able to get the basics
down as well as some examples displaying how to simply read and write.

But the next step appears exponential. I haven never done anything in
VB, so any and all concepts and commands are completely foreign. I
have been digging through the VB help and also bought a book
specifically for Python and COM. But I don't really have time to learn
VB before I can finish my script.

Would there happen to be any pre-existing examples of the stuff I need
to do out there? Basically I need to do the things I listed above -
insert rows and columns and hide/unhide rows. I think with a few
examples of sheet manipulation I could figure out the rest.

Thanks ahead of time,
Marc
Jul 18 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
At 10:18 AM 10/3/2003, Marc wrote:
Hi all,

I am trying to write an application where I need the ability to open
an Excel spreadsheet and do basic read/write, insert rows, and
hide/unhide rows. Using win32com I have been able to get the basics
down as well as some examples displaying how to simply read and write.

But the next step appears exponential. I haven never done anything in
VB, so any and all concepts and commands are completely foreign. I
have been digging through the VB help and also bought a book
specifically for Python and COM. But I don't really have time to learn
VB before I can finish my script.

Would there happen to be any pre-existing examples of the stuff I need
to do out there? Basically I need to do the things I listed above -
insert rows and columns and hide/unhide rows. I think with a few
examples of sheet manipulation I could figure out the rest.


The Range object handles all of the above. I recommend examining the
various properties and methods of Range. One easy way to do this is
1 open the Excel VBA Window
2 press F2 to get the Object Browser
3 scroll the classes pane to Range then look at members insert, delete and
value.
4 Press F1 on any of these to see the help file and helpful examples.

Also look at Worksheet Classes Rows and Columns properties for Range
objects that span entire rows / columns

Assuming you have created a worksheet object (let's call it ws)

Reading & Writing (a review):
rng = ws.Range("a1:b2")
rng.Value ((None, None), (None, None)) rng.Value=((1, 2), (3, 4))
rng.Value ((1.0, 2.0), (3.0, 4.0))

Hiding: row = ws.Rows("1")
row.Hidden 0 row.Hidden=1
Insert/Delete row.Insert()
col = ws.Columns("A")
col.Delete()


Enough?

Bob Gailer
bg*****@alum.rpi.edu
303 442 2625
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.521 / Virus Database: 319 - Release Date: 9/23/2003

Jul 18 '05 #2

P: n/a
mn******@airmail.net (Marc) wrote in message news:<43**************************@posting.google. com>...
Hi all,

I am trying to write an application where I need the ability to open
an Excel spreadsheet and do basic read/write, insert rows, and
hide/unhide rows. Using win32com I have been able to get the basics
down as well as some examples displaying how to simply read and write.

But the next step appears exponential. I haven never done anything in
VB, so any and all concepts and commands are completely foreign. I
have been digging through the VB help and also bought a book
specifically for Python and COM. But I don't really have time to learn
VB before I can finish my script.

Would there happen to be any pre-existing examples of the stuff I need
to do out there? Basically I need to do the things I listed above -
insert rows and columns and hide/unhide rows. I think with a few
examples of sheet manipulation I could figure out the rest.

Thanks ahead of time,
Marc


One trick is using Excel's Macro-Recorder to record all
you've done in Excel. After this you get the resulting macro
by Alt-F11 in the VBA-Editor.
You can copy the recorded methode-calls to Python by changing some
few things to Python-syntax.
Let's say you have reached the following point:
import win32com.client
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible=1
workbook=excel.Workbooks.Add()
Now start Excel's Macro-Recorder and do want you want to do.
E.g. select row 4-9 and hide them.
Stop recording and see the VBA-result:
Rows("4:9").Select
Selection.EntireRow.Hidden = True
This will result in the following Python code: excel.Rows("4:9").Select()
excel.Selection.EntireRow.Hidden = True Et voila, line 4 to 9 are hidden
(provided that you got them unhided before in Excel).
Some days or weeks later when you have learned a little bit
about ??Microsoft's VBA-OOP-concept?? :-) you will know that you
can code this shorter: workbook.ActiveSheet.Rows("4:9").Hidden = True or quicker: excel.Rows("4:9").Hidden = True


I hope you will likes this **LEARNING by RECORDING** :-)

Regards
Peter
Jul 18 '05 #3

P: n/a
One other quick question. How do I close down the Excel Application?
After performing the commands:

x1App = win32com.client.dynamic.Dispatch('Excel.Applicatio n')
xlApp.Workbooks.Open(filename)

That fires up Excel which stays hidden unless I make it visible. I can
close the book and delete the COM object by doing the following:

xlBook.Close(SaveChanges=0)
del self.xlApp

But the Excel process is still running in the background. How do I
stop the Excel process? Leaving it running seems to screw up the
application the next time I run it.

Thanks again,
Marc
Jul 18 '05 #4

P: n/a
At 06:06 PM 10/3/2003, Marc wrote:
One other quick question. How do I close down the Excel Application?
After performing the commands:

x1App = win32com.client.dynamic.Dispatch('Excel.Applicatio n')
xlApp.Workbooks.Open(filename)

That fires up Excel which stays hidden unless I make it visible. I can
close the book and delete the COM object by doing the following:

xlBook.Close(SaveChanges=0)
del self.xlApp

But the Excel process is still running in the background. How do I
stop the Excel process? Leaving it running seems to screw up the
application the next time I run it.


Right. It does. Thank you Microsoft.
Try:
x!App.Quit()

Bob Gailer
bg*****@alum.rpi.edu
303 442 2625
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.521 / Virus Database: 319 - Release Date: 9/23/2003

Jul 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.