Скопируйте и вставьте несколько листов в новую книгу. - PullRequest
0 голосов
/ 27 декабря 2018

Цель состоит в том, чтобы скопировать и вставить несколько существующих листов из рабочей книги в новую рабочую книгу, используя xlwings.У меня есть:

app = xw.App(visible=False)
book = xw.Book(path)

sheet_1 = book.sheets["Sheet1"]
sheet_2 = book.sheets["Sheet2"]

wb_res = xw.Book()
sheet_active = wb_res.sheets.active
sheet_1.api.Copy(Before=sheet_active)

Это выбрасывает:

TypeError: Objects for SAFEARRAYS must be sequences (of sequences), or a buffer object.

Бонусный вопрос для смелых:
- Как заменить все формулы на листе на его значение?

Спасибо

1 Ответ

0 голосов
/ 27 декабря 2018

Если вы можете использовать win32com, вы можете попробовать это:

from win32com.client import Dispatch

path1 = 'workbook1.xlsx'
path2 = 'workbook2.xlsx'

xl = Dispatch("Excel.Application")

wb1 = xl.Workbooks.Open(Filename=path1)
wb2 = xl.Workbooks.Open(Filename=path2)

ws1 = wb1.Worksheets(1)
ws1.Copy(Before=wb2.Worksheets(1))

wb2.Close(SaveChanges=True)
xl.Quit()
...