python修改word如何保留链接

Python011

python修改word如何保留链接,第1张

python修改word按照如下步骤操作。

1、生成表格的时候,内容太多,分页以后希望继续有表头,要在原来的word文档中,对表格的标题设置重复标题行。

2、布局--重复标题行生成表格,如果列宽不是想象的样子,尤其把模板写成这样的时候。要确保这些是一根线。

3、最好的办法是,插入一个N*M的表格,然后再用橡皮擦,或者合并单元格。跨行、跨列,要指定行数或列数。

编者的话(可以跳过):

    在政府单位实习了一段时间,发现有很多资料需要制作,而且繁琐重复,第一时间就想到了python,因为在办公自动化这方面我只知道python,本着能偷懒就偷懒的原则,通过查阅资料整出一个小脚本然后用tkinter的ui组件写了一个界面方便除我之外的人使用,此软件涉及内部文件就不发布了。截图如下:

需求如下:

    当你有一大堆的word文档,然后这些word文档都有其固定格式,也许是一个表格,也许就是只有文字的普通文档,这些固定模式的文档我称之为模板。如果有10份模板,这些模板的填写内容大致相同,比如说文件的编号,年份,一些公司名称等。然后基本上就是机械的找位子复制改改格式循环往复然后时间就过去了,做了一堆无意义的事情。

    所以核心功能:需要把自己想要填写的内容填写到模板的指定位置。

2、实现方式

2.1使用python-docx

    有兴趣的可以深入学习一下python-docx,这里仅仅是实现需求。python-docx只能处理docx所以doc需要转为docx具体方法可以自行百度。

    这个替换程序是可以替换word文档内表格和非表格的内容且不会修改原模板的任何格式,填写好上面所给函数的参数然后在ide里运行一下,前提是事先在文档中要填写的位置写好要替换的内容,也就是old_text,如下所示:

最后一个参数,全部替换是2,但是selection每次只能是1个地方。所以要循环找\x0d\x0awords=['python', 'hello', 'hi']\x0d\x0afor i in set(words): \x0d\x0aworddoc.Range(0,0).Select()\x0d\x0awhile w.Selection.Find.Execute(i, False, False, False, False, False, True, 0, True, "", 0):\x0d\x0aw.Selection.Font.Color = 255\x0d\x0a\x0d\x0aExecute 方法(Find 对象)\x0d\x0a运行指定的查找操作。如果查找成功,则返回 True。(这说明其是同步执行)\x0d\x0a语法\x0d\x0aexpression.Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl)\x0d\x0aexpression 必需。该表达式返回 Find 对象。\x0d\x0aFindText Variant 类型可选。指定需查找的文本。可用空字符串 ("") 查找格式。也可通过指定适当的字符代码查找特殊字符。例如,“^p”对应段落标记,“^t”对应制表符。如果需要使用特殊字符列表,请参阅查找替换特殊字符和文档元素示例。\x0d\x0a如果 MatchWildcards 为 True,则可以指定通配符及其他高级搜索条件。例如,“*(ing)” 将查找以“ing”结尾的所有单词。详细内容,请参阅通配符搜索示例。\x0d\x0a若要搜索符号字符,可键入 (^) 字符,零(0),然后键入符号字符的代码。例如,“^0151”对应一条长划线(—)。\x0d\x0aMatchCase Variant 类型,可选。如果是 True,则查找文本需区分大小写。相当于“编辑”菜单“查找和替换”对话框中的“区分大小写”复选框。\x0d\x0aMatchWholeWord Variant 类型,可选。如果为 True,则只查找匹配的完整单词,而并非作为一个长单词的一部分的文字。相当于“编辑”菜单“查找和替换”对话框中的“全字匹配”复选框。\x0d\x0aMatchWildcards Variant 类型,可选。如果为 True,则查找的文字包含特殊搜索操作符。相当于“编辑”菜单“查找和替换”对话框中的“使用通配符”复选框。\x0d\x0aMatchSoundsLike Variant 类型,可选。如果为 True,则查找与待查找文字发音相近的单词。相当于“编辑”菜单“查找和替换”对话框中的“同音”复选框。\x0d\x0aMatchAllWordForms Variant 类型,可选。如果为 True,则查找文字的所有形式(例如,“ sit” 将包含“sitting”和“sat”)。相当于“编辑”菜单“查找和替换”对话框中的“查找单词的各种形式”复选框。\x0d\x0aForward Variant 类型,可选。如果为 True,则向下(向文档尾部)搜索。\x0d\x0aWrap Variant 类型,可选。如果搜索从不是文档开头的位置开始,并到达文档末尾(如 Forward 设置为 False,则相反),用本参数控制接下来的操作。当在选定内容或区域中没有找到搜索文字时,本参数也控制接下来的操作。可以是下列 WdFindWrap 常量之一:\x0d\x0a常量 描述 \x0d\x0awdFindAsk 搜索完所选内容或者区域后,Microsoft Word 会显示一条消息,询问是否搜索文档的其他部分。 \x0d\x0awdFindContinue 到达搜索区域的开始或者结尾时,继续执行查找操作。 \x0d\x0awdFindStop 到达搜索范围的开始或者结尾时,停止执行查找操作。 \x0d\x0aFormat Variant 类型,可选。 如果为 True,则查找格式而非文字。 \x0d\x0aReplaceWith Variant 类型,可选。替换文字。要删除由 Find 参数指定的文字,可使用空字符串 ("")。与 Find 参数相似,本参数也可以指定特殊的字符和高级搜索条件。要将图形对象或者其他非文本项指定为替换内容,可将这些项目置于“剪贴板”上,然后将 ReplaceWith 指定为“ ^c”。\x0d\x0aReplace Variant 类型,可选。指定执行替换的个数:一个、全部或者不替换。可为下列 WdReplace 常量之一:wdReplaceAll、wdReplaceNone 或 wdReplaceOne。\x0d\x0aMatchKashida Variant 类型,可选。如果为 True,则查找结果应与阿拉伯语文档中区分 kashidas 的文本相匹配。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。\x0d\x0aMatchDiacritics Variant 类型,可选。如果为 True,则查找结果应与区分音调符号的语言文本相匹配。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。\x0d\x0aMatchAlefHamza Variant 类型,可选。如果为 True,则在阿拉伯语文档中,查找内容应与区分 Alef Hamzas 的文本相匹配。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。\x0d\x0aMatchControl Variant 类型,可选。如果为 True,则在从右到左运用语言的文档中,查找内容应区分双向控制字符。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。