docx 处理库python-docx 的使⽤
python-docx 的使⽤本⾝是⾮常简单的。创建⽂档,添加标题,添加段落,添加表格,按照顺序就能够逐步完成的。在实际使⽤过程中,主要是发现了两个问题。
1 创建⽂档
创建⽂档是整个过程的开始部分。这个地⽅很有意思的是,它的参数是⽂档模板,也就是说,默认情况下,python-docx 还是以创建⽂档为⽬的的。
能够看到,python-docx 本⾝是不带有打开⽂档的功能,但是在后⾯加上docx 模板之后,再使⽤合适的⽅法就能够认为是在读⽂档。
值得注意的是,这个地⽅新建的⽂档可以认为是放在内存中的,也就是说,在这个地⽅是可以不指定⽂件位置的,指定⽂档位置是在最后的保存⽂档这个步骤。
2 添加段落
在使⽤个过程中,碰到了⼀个问题,⼀段⽂本中有\r 、\n 和\t 等特殊字符的时候,直接添加到⽂档中是识别的,也就是说会出现强制换⾏、⾃动换⾏和制表符这些转义的。值得注意的是,出现了某个奇怪的
符号,是⼀个向上的箭头,在程序中出现了ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters 这样的错误。这种⽆显⽰的字符,直接过滤掉即可,具体的过滤⽅法如下所⽰:
3 设置⽂字字体为宋体
⽣成的⽂档字体是MS Mincho (中⽂正⽂),不是宋体,看着会很奇怪,使⽤下⾯代码可以设置字体为宋体。
4 总结
docx 的使⽤本⾝是⼀个很简单的事情,但是实际在使⽤过程中,还是碰到了⼀些问题。第⼀个问题,是⾃⼰没搞明⽩参数的函数,以为是要指定路径,结果浪费了⼀些时间;第⼆个问题,是数据库的数据本⾝存在瑕疵,我只要在程序中解决就好。123from docx import Document document = Document(docx='')
1document.save(path_or_stream)
12remove_re = repile(u'[\x00-\x08\x0B-\x0C\x0E-\x1F\x7F]')
python中文文档etree_ = remove_re.sub('', text)123456from l.ns import qn run = p.add_run(graph[key])run.font.name = u "宋体"r = run._element r.rPr.rFonts.set (qn('w:eastAsia'), u "宋体")
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论