精华内容
下载资源
问答
  • I am using Python-Docx to allow users of my code to create tables.I would like to change the font size of the table. The cell value numbers are wrapping around in the table cells because the font is t...

    I am using Python-Docx to allow users of my code to create tables.

    I would like to change the font size of the table. The cell value numbers are wrapping around in the table cells because the font is too large.

    I have searched the documentation and many forums without any luck so far.

    Am i correct in my assumption that only table styles can be changed, but not font sizes?

    I realize I could modify or create my own style, but that will not help other users of my code on other computers ((such as explained in forum post: How do I get rid of the default styling on a table object in a python-docx generated word document?)) Most other posts that I found discuss style, but not font size.

    I have seen some similar questions where people point to using xml, but I do not understand how this would be written into the standard docx table code.

    Any help or insights greatly appreciated!

    解决方案

    There are a few different approaches, but the simplest you can do with the current version of python-docx is to apply a paragraph style to each of the paragraphs in each table cell. You'll need to have the style with the more compact font already in your starting document as detailed here: http://python-docx.readthedocs.org/en/latest/user/styles.html

    Here's an aircode example that should get you going in the right direction:

    table = document.add_table(...)

    for row in table.rows:

    for cell in row.cells:

    for paragraph in cell.paragraphs:

    paragraph.style = 'CellText' # assuming style named "Cell Text"

    Respond in a comment if any of this doesn't make sense. Btw, the next version will have substantial new features for styles and direct font property application, e.g. size and typeface. It should be out in a month or so.

    展开全文
  • 这篇文章主要介绍了关于python docx 中文字体设置的操作方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下最近用到了docx生成word文档,docx本身用起来很方便,自带的各种样式都很好看,美中不足...

    这篇文章主要介绍了关于python docx 中文字体设置的操作方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    最近用到了docx生成word文档,docx本身用起来很方便,自带的各种样式都很好看,美中不足的就是对中文的支持不够好。在未设置中文字体的时候,生成的文档虽然可以显示中文,但是笔画大小不一,很难看。

    解决办法:

    首先创建一个文档,要先声明一个document:

    from docx import Document

    document = Document()

    docx内置的样式都可以通过document.styles取到。

    正文是Normal, 标题样式根据标题声明的基本,分别从Heading 1 到Heading 9, 另外还有table、list等各种word对应的样式。可以通过遍历document.styles查看。

    我们以正文Normal为例。先来看看涉及字体更改的是style object里面的哪些属性。

    1. document.styles[‘Normal'].font.name

    有兴趣深入研究的同学可以看看官方文档对Font的介绍

    http://python-docx.readthedocs.io/en/latest/dev/analysis/features/text/font.html?highlight=font

    在这里我们只需要更改font.name。

    2. document.styles[‘Normal']._element.rPr.rFonts

    只更改font.name是不够的,还需要调用._element.rPr.rFonts的set()方法。

    综合起来这样

    from docx.oxml.ns import qn

    document.styles['Normal'].font.name = u'宋体'

    document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

    问题解决, 表格中字体成功更改为”宋体”.

    相关推荐:

    展开全文
  • 在使用Python-docx包对表格进行数据的录入,通常采用如下几种方式。01设置单元格的值表格中单元格的值有两种赋值方式,一种是直接为cell.text属性赋值来实现,另外一种是通过获取或者添加单元格中的段落,然后使用...

    在使用Python-docx包对表格进行数据的录入,通常采用如下几种方式。

    01设置单元格的值

    表格中单元格的值有两种赋值方式,一种是直接为cell.text属性赋值来实现,另外一种是通过获取或者添加单元格中的段落,然后使用段落中的text属性赋值实现,代码如下:

    from docx import Documentfrom docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 导入段落对齐方式document = Document()table = document.add_table(2, 4) # 为文档新增2行4列的表格table.cell(0, 0).text = '值1' # 为表格的(0,0)位置单元格赋值paragraph = table.cell(0, 1).paragraphs[0] # 获取表格(0,1)位置单元格中的段落paragraph.text = '值2'paragraph = table.cell(0, 1).add_paragraph('第二个段落居中', style=None)paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置段落居中单元格赋值效果见下图

    8d5494eef01f3a299cc76dd1496534375c607c6d.jpeg?token=2c23ab894ab4631e3ea36cf1bf8bf4bb单元格值设置的2种方式

    第一种赋值方式,只能更改单元格的值,无法设置单元格中数据的样式,并且整个单元格只能是一个段落;而第二种赋值方式,使用了段落,在单元格赋值的基础上还能增加新的段落,并设置段落的样式和字体的样式。具体段落的使用方法可以参考文章python-docx段落设置

    02一般录入方式

    在表格中使用table.cell(col_index, row_indelx)来定位单元格,使用cell.text属性设置单元格的值。新建表格并将第一行设置为表头,从第二行开始作为数据的开始行,代码如下:

    from docx import Document # 导入docx包document = Document() # 新建docx文档table = document.add_table(2, 4)table.cell(0, 0).text = '序号'table.cell(0, 1).text = '姓名'table.cell(0, 2).text = '年龄'table.cell(0, 3).text = '身高'# 表格赋值,将第二行作为数据输入第一行table.cell(1, 0).text = '1'table.cell(1, 1).text = '张三'table.cell(1, 2).text = '20'table.cell(1, 3).text = '174'document.save('test.docx')cell添加表格的效果图如下:

    5366d0160924ab185fdf693de7ba6ecb7a890bb2.jpeg?token=e8f9324cddb5921a027a1242ab8bf54a使用table.cell添加数据

    这种录入方式要为每个单元格单独写入使用代码,适合对表格数据样式重复性低的情形,代码量大,可移植性差。

    03按行录入

    这种方式将数据的录入以行为单位进行录入。在对数据录入时,先获取行中cells对象,遍历每个cell,并通过cell.text赋值,录入数据。代码如下:

    data = [['序号', '姓名', '年龄', '身高'], ['1', '张三', '20', '174'], ['2', '李四', '19', '167']]document = Document() # 新建docx文档table = document.add_table(3, 4)#表头table_header = table.rows[0].cellsfor col_i in range(4):table_header[col_i].text = data[0][col_i]# 录入数据for row_i in range(1, 3):table_data = table.rows[row_i].cellsfor col_i in range(4): # 遍历列table_data[col_i].text = data[row_i][col_i]按行录入数据效果如下:图2

    e61190ef76c6a7ef85057a242fba2757f3de665c.jpeg?token=5f74cc114d02fd2ec8d0499981188223按行录入数据

    表中的数据以list类型存储,通过for循环按行遍历每个单元格,为每个单元格赋值。同02节录入数据方式相比,这种录入数据方式可移植性强,使用简便。

    04删除单元格数据

    单元格数据的删除从本质上来说同赋值是一样的,只不过赋值为空字符串,即''。同样也有两种方式来实现删除单元格数据,一种是直接cell.text赋值为'',另外一种能是使用段落,将段落的text属性赋值为''。单元格数据删除代码如下:

    document = Document('test2.docx') # 读取test.docxtable = document.tables[0] # 读取第1个表格table.cell(0, 0).text = '' # 将(0,1)位置的单元格赋值为''paragraph = table.cell(0, 1).paragraphs[0].text = '' # 将(0,1)位置的单元格赋值为''document.save('test3.docx')删除单元格数据的效果图如下:

    d53f8794a4c27d1ef38d56e5ca952568ddc4382a.jpeg?token=4fe13b409ab154cf03faeeddf96a5241单元格数据删除的2种方式

    第一种方式删除后的单元格无法保留样式,而第二种删除方式保留了段落的样式。

    05删除表格行数据

    python-docx中没有删除一整行数据的方法,不过可以通过遍历行内的cell,然后利用删除行内所有单元格的方法来实现。代码如下:

    for cell in table.rows[1].cells: 遍历表格中第2行中所有的单元格cell.text = '' # 删除行的值删除第2行后的效果见下图

    7af40ad162d9f2d3a14dc6e578ac02156327cc20.jpeg?token=215426764e74f4fe23a91cf5b1b4aed5删除第2行中的值

    06删除表格列数据

    删除表格类的数据同删除行的数据是相似的,python-docx包中也没有删除整列值的方法。具体删除代码如下:

    for cell in table.columns[1].cells: 遍历表格中第2列中所有的单元格cell.text = '' # 删除列的值删除第2列后的效果图

    060828381f30e92481e5237c9c48e6001c95f785.jpeg?token=a700b408ccc9a80d119a897bbb092c23删除表格中的第2列的值

    笔者将设置单元格的值、一般录入数据方式、按行录入数据方式、删除单元格数据、删除行数据和删除表格列数据等6个部分的内容制作了思维导图,见下图。为使用python-docx包录入和删除表格数据提供参考。

    37d3d539b6003af31d2c2fd1d26a4e5a1138b6b0.jpeg?token=1d44f0b89415fbb4e726bd065bb7c6fapython-docx录入和删除表格数据

    展开全文
  • 摘要这篇文章主要介绍了关于python docx 中文字体设置的操作方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下这篇文章主要介绍了关于python docx 中文字体设置的操作方法,有着一定的参考价值,...

    摘要

    这篇文章主要介绍了关于python docx 中文字体设置的操作方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    这篇文章主要介绍了关于python docx 中文字体设置的操作方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    最近用到了docx生成word文档,docx本身用起来很方便,自带的各种样式都很好看,美中不足的就是对中文的支持不够好。在未设置中文字体的时候,生成的文档虽然可以显示中文,但是笔画大小不一,很难看。

    解决办法:

    首先创建一个文档,要先声明一个document:

    from docx import Document

    document = Document()

    docx内置的样式都可以通过document.styles取到。

    正文是Normal, 标题样式根据标题声明的基本,分别从Heading 1 到Heading 9, 另外还有table、list等各种word对应的样式。可以通过遍历document.styles查看。

    我们以正文Normal为例。先来看看涉及字体更改的是style object里面的哪些属性。

    1. document.styles[‘Normal'].font.name

    有兴趣深入研究的同学可以看看官方文档对Font的介绍

    http://python-docx.readthedocs.io/en/latest/dev/analysis/features/text/font.html?highlight=font

    在这里我们只需要更改font.name。

    2. document.styles[‘Normal']._element.rPr.rFonts

    只更改font.name是不够的,还需要调用._element.rPr.rFonts的set()方法。

    综合起来这样

    from docx.oxml.ns import qn

    document.styles['Normal'].font.name = u'宋体'

    document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

    问题解决, 表格中字体成功更改为”宋体”.

    相关推荐:

    Python读写docx文件的方法

    以上就是python docx 中文字体设置的操作方法的详细内容,更多请关注php教程其它相关文章!

    除非注明,否则均为@武汉蒲公英网络工作室原创文章,转载必须以链接形式标明本文链接

    展开全文
  • 搞了好几天的表格字体格式,一直想找一种能直接一次性修改表格所有字体格式的方法(函数),但是无论用什么方法都无法修改表格字体的格式,原因应该是已存在的文档本身就具有某种格式限制,制约着里面表格里面字体...
  • python docx 中文字体设置

    万次阅读 多人点赞 2017-08-07 13:55:06
    python docx设置table中字体
  • 这篇文章主要介绍了关于python docx 中文字体设置的操作方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下最近用到了docx生成word文档,docx本身用起来很方便,自带的各种样式都很好看,美中不足...
  • 艺赛旗|做RPA生态先行者 RPA10.0全新首发免费下载 点击下载艺赛旗-RPA机器人免费下载|提供流程自动化解决方案​www.i-search.com.cn引入会用到的库from docx import Documentfrom docx.shared import Ptfrom docx....
  • 在未设置中文字体的时候,生成的文档虽然可以显示中文,但是笔画大小不一,很难看。解决办法:首先创建一个文档,要先声明一个document:from docx import Documentdocument = Document()docx内置的样式都可以通过...
  • 在未设置中文字体的时候,生成的文档虽然可以显示中文,但是笔画大小不一,很难看。解决办法:首先创建一个文档,要先声明一个document:from docx import Documentdocument = Document()docx内置的样式都可以通过...
  • python docx字体设置

    千次阅读 多人点赞 2020-04-13 16:50:10
    首先引入依赖包 from docx import Document from docx.oxml.ns import qn ...新建文档,设置文本内容字体 Doc = Document() Doc.styles['Normal'].font.name = u'宋体' Doc.styles['Normal']._element....
  • 使用pythondocx进行doc文件编写的时候,如果想插入一个style为’Table Grid’的表格,那么就先新建一个空文档’test.docx’,然后在同目录的test.py下写如下代码并运行: import docx doc = docx.Document('test...
  • python docx_pythondocx

    2020-11-24 12:06:07
    广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!... 6.6 python-docx :下载地址? python setup.py install ? 1. 可能未装lxml module造成的. ...
  • 我正在使用python 2.7和docx,我想根据条件更改表格中单元格的背景和文本颜色。python docx设置表格单元格背景和文本颜色我找不到任何关于单元格格式化的有用资源有什么建议吗?编辑1我的代码style_footer = ...
  • #coding:utf-8importos, reimportdocxfrom docx.document importDocument as dcfrom docx.oxml.table importCT_Tblfrom docx.oxml.text.paragraph importCT_Pfrom docx.table import_Cell, Tablefrom docx.text.para...
  • 因为python-docx表格的解析不够友好且效率低,故需转换一次 代码如下 # coding:utf-8 import os, re import docx from docx.document import Document as dc from docx.oxml.table import CT_Tbl from docx....
  • 作者 | 陈熹来源 | 早起Python(ID:zaoqi-python)头图 | CSDN 下载自东方IC导读...Python操作Word之docx????Pyton操作PDF之PyPDF2今天本文将基于第三方库 pptx,详细讲解如何使用Python操作Office全家桶最后一位——...
  • 功能描述:本文代码使用python-docx操作docx文档,添加一段文字并设置居中对齐,添加一个表格并为所有单元格设置文字。from docx import Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPH# 设置行和列的数量...
  • python-docx表格设置

    千次阅读 2020-03-08 17:49:56
    怕搞忘,记下来。...pydocx的表格设置: 1.字体设置 for i in range(len(tab.rows)): tab.rows[i].height = Cm(2) for j in range(len(tab.columns)): tab.cell(i,j).width = Cm(4) tab...
  • from docx import Documentdoc = Document(r’D:\python\Python37\testWord\卢祥和.docx’)‘’’paragraph = document.add_paragraph(‘这是个段落11。’) #将一段新文本添加到文档末尾prior_paragraph = paragraph...
  • python修改docx文档的表格内中文字体

    千次阅读 2020-10-01 22:07:42
    from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.shared import Cm,Pt from docx.oxml.ns import qn document = Document('2.docx') #读取文档的第一个表格数据 tables =...
  • docx 库文章结构:一、docx 基本用,创建 docx 文件并添加数据二、深入理解文本格式(format),并设置所格式...创建docx 文件并添加数据官方文档:https://python-docx.readthedocs.org/en/latest/docx 可以操作...
  • 搞了好几天的表格字体格式,一直想找一种能直接一次性修改表格所有字体格式的方法(函数),但是无论用什么方法都无法修改表格字体的格式,原因应该是已存在的文档本身就具有某种格式限制,制约着里面表格里面字体...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,082
精华内容 432
关键字:

pythondocx表格字体

python 订阅