我正在尝试将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?)
但是给定的解决方案对我不起作用。
答案 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"