遍历工作簿以生成包含新文件名的新工作簿

2024-05-12 17:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我的目录中迭代。对于每个工作簿,我希望生成一个新的工作簿。在

我希望新工作簿以它所遍历的文件命名,但前面有“new”(理想情况下,新工作簿应该是全新的,而不是以前工作簿的副本,这甚至可能吗?)在

下面的代码似乎在做一些事情,但并不完全正确

import win32com.client as win32
bk_2_to_5 = [filename2, filename3, filename4, filename5]

for x in bk_2_to_5:
       excel = win32.gencache.EnsureDispatch('Excel.Application')
       excel.Visible = True         
       wb = excel.Workbooks.Add()
       wb.SaveAs('New' + x + sh'*.xlsx')
       excel.Application.Quit()

我希望能出版名为Newfilename2.xlsx、Newfilename3.xlsx等的新书

有人知道解决办法吗?在

编辑:

输出是这样的。请注意,将打开一个空白工作簿,但它不会自动保存。如果我这么做wb.SaveAs文件('新建.xlsx'),另存为新建.xlsx,但这不是我想要的,我希望它以每个文件命名,前缀为“New”。在

com\U错误:(-2147352567,“发生异常”,(0,“Microsoft Office Excel”,“工作簿类的另存为方法失败”,“C:\Program Files(x86)\Microsoft Office\Office12\1033\XLMAIN11.CHM”,0,-2146827284),无)


Tags: 文件to目录newapplicationxlsxexcel命名
1条回答
网友
1楼 · 发布于 2024-05-12 17:27:40

如果您可以使用xlwt模块。下面的例子可能会有所帮助。在

例如:

import xlwt

bk_2_to_5 = ["filename2", "filename3", "filename4", "filename5"]

for  b in bk_2_to_5:
    book = xlwt.Workbook()
    sheet = book.add_sheet("data", cell_overwrite_ok=True)             
    book.save('New' + b  + '.xls')

相关问题 更多 >