[python-win32] Can't figure out how to get the Excel copy method
to work correctly.
Fabricio Guzman
fguzman_slotown at yahoo.com
Mon Aug 23 19:56:53 CEST 2004
Joe,
It worked over here with:
xlsheets(1).Copy(None, xllstsheet)
give it shoot.
-Fabricio
--- Joe Goldthwaite <joe at goldthwaites.com> wrote:
> Hello Everyone,
>
> This is my first post to this list. I ran into a
> problem while converting
> some old VB applications to Python and I don't have
> a clue on how to get
> around it. I have this sample VB subroutine;
>
> Sub Test()
> Set XLApp = CreateObject("Excel.Application")
> XLApp.Visible = -1
> Set XLWorkbook =
> XLApp.Workbooks.Open("c:\Someworkbook.xls")
> Set XLWorksheets = XLWorkbook.Worksheets
> Set LastWorksheet =
> XLWorksheets(XLWorksheets.Count)
> XLWorksheets(1).Copy After:=LastWorksheet
> End Sub
>
>
> What is does is made a copy of worksheet 1 and puts
> it as the last tab of
> the workbook. The worksheet copy method says that
> if you specify the
> "Before" or "After" parameters, it inserts the copy
> before or after the
> worksheet passed. is means that you have to pass a
> worksheet object to the
> copy method. If you leave the before or after
> parameters off, the new
> worksheet is copied to a new workbook. The above
> code works fine. Here's my
> Python equivalent;
>
> from win32com.client import Dispatch
>
> XLApp = Dispatch("Excel.Application")
> XLApp.Visible = -1
> XLWorkbook =
>
XLApp.Workbooks.Open("c:\EFS01.0\Extensions\ISRecapTemplate.xls")
> XLWorksheets = XLWorkbook.Worksheets
> LastWorksheet = XLWorksheets(XLWorksheets.count)
> XLWorksheets(1).Copy(After=LastWorksheet)
>
> When this is run, the worksheet get's copied to a
> new workbook instead of
> getting appended to the existing workbook. I know
> it's passing something to
> the "After" parameter because if I spell "After"
> with a lower case "A", I
> get an error that it's an unknown method. I also
> know that LastWorksheet
> has a reference to the last worksheet in the
> workbook because I can see all
> the properties. For some reason, Excel doesnt'
> recognize LastWorksheet as a
> valid worksheet reference.
>
> I suspect that the Win32 routines are doing some
> translating of the COM
> objects so they can work from python but doesn't do
> it if you pass a COM
> object as a parameter. Does anyone have any ideas
> on how I can get this
> functionality working?
>
> Thanks.
>
> Joe Goldthwaite
>
> _______________________________________________
> Python-win32 mailing list
> Python-win32 at python.org
> http://mail.python.org/mailman/listinfo/python-win32
>
__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail
More information about the Python-win32
mailing list