广州企业网站设计方案,深圳市福田招聘,上海嘉定建设局网站,wordpress幻灯片不显示图片需求#xff1a;修改指定目录下所有文件的页眉页脚#xff0c;或者往里面添加内容。
1. 这里做了word的实现和excel的实现#xff0c;如下#xff1a;
需要先安装 pip3 install pywin32#xff0c;另外页眉页脚格式设置可以参考#xff1a;
word#xff1a;
浅谈Wor…需求修改指定目录下所有文件的页眉页脚或者往里面添加内容。
1. 这里做了word的实现和excel的实现如下
需要先安装 pip3 install pywin32另外页眉页脚格式设置可以参考
word
浅谈Word.Application关于js操作word文档的使用_new word.application-CSDN博客
excel
Python操作Excel教程图文教程超详细Python xlwings模块详解_xlwings教程-CSDN博客
import os
import xlwings as xw
import win32com.client as win32
import pythoncom#将需要替换页眉页脚的文档放到path下
path rC:\Users\d\Desktop\pdf改名脚本\22\2022年\test
#原始页眉页脚内容
old_name u999
#新页眉页脚内容
new_name u888
#替换失败记录日志
err_log path u\\head修改出错列表.txt
def log(text):with open( err_log,a ) as f:f.write(text)f.write(\n)def change_headerfooter(path): 更改文件的页眉页脚 pythoncom.CoInitialize()word win32.Dispatch(Word.Application)#print(dir(word))word.Visible 0word.DisplayAlerts 0exapp xw.App(visibleFalse, add_bookFalse)# excel win32.Dispatch(Excel.Application)# excel.Visible 0# excel.DisplayAlerts 0for parent, dirnames, filenames in os.walk(path):for fn in filenames:filedir os.path.join(parent, fn)#获取需替换目录下的docx结尾的文档名称if fn.endswith(.docx) or fn.endswith(.doc):print(filedir)try:doc word.Documents.Open( filedir )a word.ActiveDocument.Sectionsn 0for i in range( len(a) ):#获取当前页眉head word.ActiveDocument.Sections[i].Headers[0]old_head str(head)#获取当前页脚foot word.ActiveDocument.Sections[i].Footers[0]old_foot str(foot)#print( old_head )#if old_name in old_head:if 1:#old_name存在页眉中时进行进行替换#用于替换页眉#new_head old_head.replace( old_name, new_name )#用于补充页眉#new_head old_head new_name#print( new_head )word.ActiveDocument.Sections[i].Headers[0].Range.Find.ClearFormatting()word.ActiveDocument.Sections[i].Headers[0].Range.Find.Replacement.ClearFormatting()#页眉重置word.ActiveDocument.Sections[i].Headers[0].Range.Delete()#设置字体大小word.ActiveDocument.Sections[i].Headers[0].Range.Font.Size20#设置对齐方式0-左1-中2-右word.ActiveDocument.Sections[i].Headers[0].Range.ParagraphFormat.Alignment 0word.ActiveDocument.Sections[i].Headers[0].Range.InsertAfter(new_name)#替换旧页眉#word.ActiveDocument.Sections[i].Headers[0].Range.Find.Execute( old_head, False, False, False, False, False, False, 1, False, new_name, 2 )#if old_name in old_foot:if 1:##old_name存在页脚中时进行进行替换#new_foot old_foot.replace( old_name, new_name )#new_foot old_foot new_nameword.ActiveDocument.Sections[i].Footers[0].Range.Find.ClearFormatting()word.ActiveDocument.Sections[i].Footers[0].Range.Find.Replacement.ClearFormatting()#页脚重置word.ActiveDocument.Sections[i].Footers[0].Range.Delete()word.ActiveDocument.Sections[i].Footers[0].Range.InsertAfter(new_name)#替换旧页脚#word.ActiveDocument.Sections[i].Footers[0].Range.Find.Execute( old_foot, False, False, False, False, False, False, 1, False, new_name, 2 )n n1doc.Close()except Exception as e:print(e)log(str(filedir))if fn.endswith(.xlsx) or fn.endswith(.xls):print(filedir)try:ex exapp.books.open(filedir)#print(dir(ex.sheets))sheet ex.sheetsprint(sheet[0].name)if test sheet[0].name:print(sheet.name)else:#如果第一个sheet不是test则加一个test的sheetsheet.add(test,beforesheet[0].name)ex.save()ex.close()except Exception as e:log(str(filedir))word.Quit()exapp.quit()change_headerfooter(path)
补充一下excel没有用pywin32去读写因为莫名其妙就是卡进程无法对excel读写可能和缓存的excel有关如要编辑3.xlsx则会卡一个~3.xlsx的进程无法结束。就换成了xlwings去读写。