似乎当使用 python 创建工作簿时,宏不可用。即使我关闭、重新启动并重新打开由 python 创建的文件,宏选项仍然丢失。但是,如果我手动创建 excel 文件,然后使用 python 代码打开手动创建的 excel 文件并运行宏,它工作正常。
提供了示例代码,但似乎我在 excel 或计算机上的设置不正确(政府计算机,虽然我有管理员权限)。我已启用宏设置中的所有宏,查看了此站点上的可用文献,但仍有问题。
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
xl.Visible = True
wb = xl.Workbooks.Add()
ws = wb.Worksheets.Add()
cell = ws.Cells(1)
cell.Value = 'text'
wb.Close(True, r'c:\AcousticAutomation\TestFolder\TestData\test.xls')
当我手动打开“test.xls”时,宏部分中没有可用的宏;因此,我没有添加宏运行行,因为代码会崩溃。
如果我将 txt 文件转换/重命名为 cvs 文件,则会出现同样的问题,再次在 excel 中手动打开 csv 时,数据存在,但没有可用的宏选项:
os.rename('c:\..file path...\test.txt', 'c:\..file path..\test.csv')
但是,如果我手动创建文件并使用:
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
xl.Visible = True
wb = xl.WorkBooks.open(r'c:\..test file path..\test.xls’)
xl.Run(‘DeleteTopRows')
宏被识别并且工作正常。因此,我尝试了创建工作簿的多种变体,但似乎每当使用 python 创建文件时,宏“消失”并且代码崩溃,因为当时宏“不存在”。