将Excel表格添加到工作簿结尾

时间:2016-10-21 14:54:47

标签: python excel python-2.7 win32com

我正在尝试将excel工作表添加到工作簿的末尾,为摘要保留第一个工作表。

import win32com.client

Excel = win32com.client.DispatchEx('Excel.Application')
Book = Excel.Workbooks.Add()

Excel.Visible = True

Book.Worksheets(3).Delete()
Book.Worksheets(2).Delete()

Sheet = Book.Worksheets(1)

Sheet.Name = "Summary"

Book.Worksheets.Add(After=Sheet)

Sheet = Book.Worksheets(2)

Sheet.Name = "Data1"

此代码尽管使用了After=Sheet,但仍将新工作表添加到左侧,当我修改名为“Data1”的工作表时,它会覆盖名为“Summary”的工作表。

这类似于这个问题:

Adding sheets to end of workbook in Excel (normal method not working?)

但是给定的解决方案对我不起作用。

3 个答案:

答案 0 :(得分:3)

尝试添加Before = None

add = Book.Sheets.Add(Before = None , After = Book.Sheets(book.Sheets.count))
add.Name = "Data1"

答案 1 :(得分:1)

尝试使用Sheet = excelApp.ActiveSheet

Book.Worksheets.Add(After=Sheet)
Sheet = Book.ActiveSheet
Sheet.Name = "Data1"

答案 2 :(得分:-2)

将 win32com.client 导入为 win32

xl = win32.gencache.EnsureDispatch('Excel.Application') xl.Sheets.Add(After=xl.ActiveSheet).Name ="Name_of_your_Sheet"