将多张纸复制粘贴到新工作簿中
Copy pasting multiple sheets into new workbook
目标是使用 xlwings 将工作簿中的多个现有 sheet 复制粘贴到新工作簿中。我有:
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.
勇敢者的奖励问题:
- 如何将 sheet 上的所有公式替换为它的值?
谢谢
如果可以使用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()
目标是使用 xlwings 将工作簿中的多个现有 sheet 复制粘贴到新工作簿中。我有:
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.
勇敢者的奖励问题:
- 如何将 sheet 上的所有公式替换为它的值?
谢谢
如果可以使用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()