Python 使用xlutils xlwt复制工作簿

Python 使用xlutils xlwt复制工作簿,python,excel,xlrd,xlwt,xlutils,Python,Excel,Xlrd,Xlwt,Xlutils,是否可以复制启用宏的excel工作簿?例如,我有: from xlutils.copy import copy from xlrd import open_workbook from tempfile import TemporaryFile book = open_workbook("book.xlsm") book_copy = copy(book) book_copy.save("bookcopy.xlsm") book_copy.save(TemporaryFile()) 但是,当我

是否可以复制启用宏的excel工作簿?例如,我有:

from xlutils.copy import copy
from xlrd import open_workbook
from tempfile import TemporaryFile

book = open_workbook("book.xlsm")
book_copy = copy(book)
book_copy.save("bookcopy.xlsm")
book_copy.save(TemporaryFile())
但是,当我单击bookcopy.xlsm打开它时,出现以下错误: “Excel无法打开文件'bookcopy.xlsm',因为文件格式或文件扩展名无效。请验证文件是否已损坏,以及文件扩展名是否与文件格式匹配。”


当我将is保存为“bookcopy.xls”时,我没有收到此错误,但我需要它为.xlsm。有人知道问题出在哪里吗?

xlwt不支持xlsm afaik(事实上,它只支持xls)。。。为什么不
shutil.copyfile('book.xlsm','book\u copy.xlsm')
@JoranBeasley是对的。我认为这是一个有点过分的做法,除了它不工作的事实。使用
shutil
或类似工具复制文件是否也能正常工作?或者您想使用xlutils进行此操作的原因是什么?我需要制作一份副本,以便可以使用book_copy.write()编辑excel工作表-是否有其他方法可以使用python编辑xlsm工作表?您可以使用win32com工具直接与excel对话(假设您正在运行windows…这是一个很大的难题…您想实现什么?为什么不能用xls实现呢?)我正在处理一个线性整数优化问题,并使用python调用解算器。Excel连接到数据库,并显示所有可以使用的变量。然后,我有一个python程序,该程序使用xlrd从Excel读取数据并解决问题。我需要解决方案然后显示在原始Excel文件中。