1. 首页 > 科技

python 通过win32com对页眉页脚的文字替换?

python 通过win32com对页眉页脚的文字替换?

求助大神:如何用Python docx解析一个Word文档,在某些字段处插入文本或表格,更换页眉页脚等?急~

from docx import Document

from docx.shared import Inches

document = Document()

document.add_heading('Document Title', 0)

p = document.add_paragraph('A plain paragraph having some ')

p.add_run('bold').bold = True

p.add_run(' and some ')

p.add_run('italic.').italic = True

document.add_heading('Heading, level 1', level=1)

document.add_paragraph('Intense quote', style='IntenseQuote')

document.add_paragraph(

'first item in unordered list', style='ListBullet'

)

document.add_paragraph(

'first item in ordered list', style='ListNumber'

)

document.add_picture('monty-truth.png', width=Inches(1.25))

table = document.add_table(rows=1, cols=3)

hdr_cells = table.rows[0].cells

hdr_cells[0].text = 'Qty'

hdr_cells[1].text = 'Id'

hdr_cells[2].text = 'Desc'

for item in recordset:

row_cells = table.add_row().cells

row_cells[0].text = str(item.qty)

row_cells[1].text = str(item.id)

row_cells[2].text = item.desc

document.add_page_break()

document.save('demo.docx')

这是一个demo for docx 你可以试试

python word文件处理

#-*- encoding: utf8 -*-

import win32com

from win32com.client import Dispatch, constants

import win32com.client

import __main__

import os

import new

import sys

import re

import string

reload(sys)

sys.setdefaultencoding('utf8')

#from fileinput import filename

class Word(object):

#初始化word对象

def __init__(self, uri):

self.objectword(uri)

#创建word对象

def objectword(self,url):

self.word = win32com.client.Dispatch('Word.Application')

self.word.Visible = 0

self.word.DisplayAlerts = 0

self.docx = self.word.Documents.Open(url)

self.wrange = self.docx.Range(0, 0)

#关闭word

def close(self):

self.word.Documents.Close()

self.word.Quit()

#创建word

def create(self):

pass

#在word中进行查找

def findword(self, key):

question = []

uri = r'E:\XE\ctb.docx'

self.objectword(uri)

#读取所有的word文档内容

range = self.docx.Range(self.docx.Content.Start,self.docx.Content.End)

question = str(range).split("&")

#查找内容

#question = re.split(r"(\r[1][0-9][0-9]+.)",str(range))

#l = question[0].split("\d+.")

for questionLine in question:

questionLine = questionLine.strip('\n')

l = re.split(r"([1][0-9][0-9]+.)",questionLine)

del l[0]

for t in l:

s = str(key[0:3])

if str(t).find(s) > -1:

#插入

g = string.join(l)

print g.encode('gb2312')

#print g.decode("")

self.insertword(g)

print "sss"

else:

print "ttt"

#插入word

def insertword(self,w):

url = r'E:\XE\ctb.doc'

self.objectword(url)

self.wrange.InsertAfter(w)

pass

#读取数据源

def source(self, src):

f = open(src)

d = f.readlines()

for l in d:

name, question01, question02, question03, question04, question05 = tuple(l.decode('utf8').split('\t'))

if question01 != u'全对':

#self.wrange.InsertAfter(name)

self.findword(question01)

return self

Word(r'E:\XE\xx.docx').source(r'E:\XE\xe.txt').close()

python操作word,关于win32com

word中doc这个格式的文件是微软特有格式,微软没有向外公开任何的api接口文档, 只能通过微软提供的OLE组件来提其COM接口,只要你的机器上安装了Offices完整的办公软件,在安装目录下面有个MSWORD.OLB组件,导入这个即可。

如何替换页眉和页脚

1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?

答:分节,每节可以设置不同的页眉。文件——页面设置——版式——页眉和页脚——首页不同

2. 问:请问word 中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?

答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。简言之,分节符使得它们独立了。这个工具栏上的“同前”按钮就显示在工

具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来

3. 问:如何合并两个WORD 文档,不同的页眉需要先写两个文件,然后合并,如何做?

答:页眉设置中,选择奇偶页不同/与前不同等选项

4. 问:WORD 编辑页眉设置,如何实现奇偶页不同? 比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊?

答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同

5. 问:怎样使WORD 文档只有第一页没有页眉,页脚?

答:页面设置-页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式-边框和底纹,选择无,这个只要在“视图”——“页眉页脚”,其中的页面设置里,不要整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了

6. 问:如何从第三页起设置页眉?

答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了●在新建文档中,菜单—视图—页脚—插入页码—页码格式—起始页码为0,确定;●菜单—文件—页面设置—版式—首页不同,确定;●将光标放到第一页末,菜单—文件—页面设置—版式—首页不同—应用于插入点之后,确定。第2 步与第三步差别在于第2 步应用于整篇文档,第3 步应用于插入点之后。这样,做两次首页不同以后,页码从第三页开始从1 编号,完成。

7. 问:WORD 页眉自动出现一根直线,请问怎么处理?

答:格式从“页眉”改为“清除格式”,就在“格式”快捷工具栏最左边;选中页眉文字和箭头,格

式-边框和底纹-设置选无

8. 问:页眉一般是———,上面写上题目或者其它,想做的是把这根线变为双线,WORD 中修改页眉的那根线怎么改成双线的?

答:按以下步骤操作去做:●选中页眉的文字,包括最后面的箭头●格式-边框和底纹●选线性为双线

的●在预览里,点击左下小方块,预览的图形会出现双线●确定▲上面和下面自己可以设置,点击在预览周围的四个小方块,页眉线就可以在不同的位置

9. 问:Word 中的脚注如何删除?把正文相应的符号删除,内容可以删除,但最后那个格式还在,应该怎么办?

答:步骤如下:1、切换到普通视图,菜单中“视图”——“脚注”,这时最下方出现了尾注的编辑栏。2、在尾注的下拉菜单中选择“尾注分隔符”,这时那条短横线出现了,选中它,删除。3、再在下拉菜单中选择“尾注延续分隔符”,这是那条长横线出现了,选中它,删除。4、切换回到页面视图。尾注和脚注应该都是一样的

10. 问:Word 里面有没有自动断词得功能?常常有得单词太长了,如果能设置一

下自动断词就好了

答:在工具—语言—断字—自动断字,勾上,word 还是很强大的