python-docx使⽤教程快速⼊门
⼊门python-docx很容易。让我们来看⼀下基础知识。
打开⽂档
你需要的第⼀件事是⼯作的⽂档。最简单的⽅法是:
easyui获取数据表格的值1 2 3from docx import Document document =Document()
这将打开⼀个基于默认“模板”的空⽩⽂档,您可以打开并使⽤现有的Word⽂档的⼯作python-docx,我们会让事情变得简单。
增加⼀段
段落是Word的基础。它们⽤于正⽂⽂本,但也⽤于标题和列表项⽬(如项⽬符号)。
这⾥是添加⼀个最简单的⽅法:
1paragraph =document.add_paragraph('Lorem ipsum dolor sit amet.')
此⽅法返回对段落的引⽤,新添加的段落在⽂档的结尾。新的段落引⽤被分配给paragraph在这种情况下,我将要离开了这⼀点在下⾯的例⼦中,除⾮我有⼀个需要它。在你的代码中,通常你不会对项⽬做任何事情,在添加它,所以没有什么意义,保持引⽤它挂在周围。
还可以使⽤⼀个段落作为“光标”,并在其上直接插⼊⼀个新段落:
1prior_paragraph =paragraph.insert_paragraph_before('Lorem ipsum')
这允许将⼀个段落插⼊到⽂档的中间,这在修改现有⽂档时通常很重要,⽽不是从头开始⽣成。
python入门教程非常详细word添加标题
在除了最短⽂档之外的任何内容中,正⽂⽂本被分成多个部分,每个部分以⼀个标题开始。以下是如何添加⼀个:
1document.add_heading('The REAL meaning of the universe')
默认情况下,这会添加顶级标题,Word中显⽰为“标题1”。当您需要⼦节的标题时,只需指定所需的级别为1到9之间的整数:
1document.add_heading('The role of dolphins', level=2)
如果指定级别0,将添加“标题”段落。这可以⽅便地启动⼀个相对较短的⽂档,没有单独的标题页。
添加分页符
每隔⼀段时间,你想要下⼀个⽂本在⼀个单独的页⾯,即使你所在的⼀个不是满的。“hard”分页符可以做到这⼀点:
1document.add_page_break()
如果你发现⾃⼰经常使⽤它,这可能是⼀个标志,你可以通过更好地了解段落样式受益。可设置的⼀个段落样式属性是在包含该样式的每个段落之前⽴即断开页⾯。因此,您可以将标题设置为某个级别,以便始终启动新页⾯。更多风格后。它们对于真正充分利⽤Word⾄关重要。
添加表
⼀个经常遇到的内容,它⾃⼰的表格呈现,排列在整齐的⾏和列。Word在这⽅⾯做得相当不错。以下是添加表格的⽅法:
1table =document.add_table(rows=2, cols=2)
表具有⼏个属性和⽅法,您将需要它们来填充它们。访问单个单元格可能是⼀个好的开始的地⽅。作为基线,您可以始终按其⾏和列指⽰访问单元格:
1cell =ll(0, 1)
这就给出了我们刚刚创建的表格最上⾯⼀⾏的右边单元格。注意,⾏和列指⽰是基于零的,就像在列表访问中⼀样。
⼀旦你有⼀个单元格,你可以把东西在它:
< ='parrot, possibly dead'
通常,⼀次访问⼀⾏单元格更容易,例如,当从数据源填充可变长度的表时。在.rows⼀个表中的属性提供给单独的⾏,每个都具有⼀
个.cells属性。该.cells两个物业Row和Column⽀持索引访问,就像⼀个列表:
1 2 3row =ws[1]
在.rows和.columns桌⼦上的集合是可迭代的,这样你就可以直接在使⽤它们for循环。相同的.cells上⾏或列序列:
1 2 3for row ws: for cell lls: )
如果你想在表中的⾏或列的计数,只要使⽤len()的顺序:
1 2row_count =ws) col_count =lumns)
您还可以以递增⽅式向表中添加⾏,如下所⽰:
1row =table.add_row()
这对于我们上⾯提到的可变长度表场景⾮常⽅便:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18# get table data -------------
items =get_things_from_database_or_something() # add table ------------------
table =document.add_table(1, 3)
# populate header row --------
access集团上市没有heading_cells =ws[0].cells
heading_cells[0].text ='Qty'
heading_cells[1].text ='SKU'
heading_cells[2].text ='Description'
# add a data row for each item
for item in items:
cells =table.add_row().cells
linux命令教程入门教程图片cells[0].text =str(item.qty)
cells[1].text =item.sku
cells[2].text =item.desc
同样的⼯作对列,虽然我还没有看到它的⼀个⽤例。
Word具有⼀组预格式化的表格样式,您可以从其表格样式库中选择。您可以将其中的⼀个应⽤于表格,如下所⽰:
1table.style ='LightShading-Accent1'
通过从表样式名称中删除所有空格形成样式名称。通过将⿏标悬停在Word的表样式库中的缩略图上,可以到表样式名称。
添加图⽚
Word中,您可以将图像使⽤的⽂档中的菜单项。以下是如何做到这⼀点的:Insert > Photo > python-docx
1document.add_picture('image-filename.png')
此⽰例使⽤路径,从本地⽂件系统加载图像⽂件。你也可以使⽤⼀个类⽂件对象,本质上就像⼀个打开的⽂件的任何对象。如果您从数据库或⽹络检索图像,并且不想获取涉及的⽂件系统,这可能很⽅便。
图像⼤⼩
默认情况下,添加图像出现在本地的⼤⼩。这通常⽐你想要的更⼤。本机⼤⼩的计算⽅法。因此,具有300dpi分辨率的300×300像素图像出现在⼀平⽅英⼨。问题是⼤多数图像不包含dpi属性,它默认为72 dpi。这将使同⼀图像在⼀边,在⼀半左右的某处出现4.167英
⼨。pixels / dpi
要获得所需的图像⼤⼩,您可以以⽅便的单位指定其宽度或⾼度,如英⼨或厘⽶:
1 2 3from docx.shared import Inches
document.add_picture('image-filename.png', width=Inches(1.0))
你可以⾃由地指定宽度和⾼度,但通常你不想要。如果仅指定⼀个,python-docx⽤它来计算出其他的适当换算值。这样的⾼宽⽐是保留的,你的图像看起来不拉伸。
在Inches和Cm提供课程,让你指定派上⽤场单位进⾏测量。在内部,python-docx使⽤英语公制单位,914400为英⼨。所以,如果你忘记了,只是把喜欢的东西width=2,你会得到⼀个⾮常⼩的图像:)。你需要从导⼊docx.shared⼦包。你可以在算术中使⽤它们,就像它们是⼀个整数,事实上它们是。因此,像⼀个表达式的作品就好了。width = Inches(3) /thing_count
应⽤段落样式
如果你不知道⼀个Word段落风格是你应该肯定检查出来。基本上,它允许您将⼀整套格式化选项⽴即应⽤到段落。这很像CSS样式,如果你知道那些是。
您可以在创建段落时应⽤段落样式:
1document.add_paragraph('Lorem ipsum dolor sit amet.', style='ListBullet')
这种特殊的风格导致段落显⽰为⼀个⼦弹,⼀个⾮常⽅便的东西。您也可以在之后应⽤样式。这两⾏相当于上⾯的⼀⾏:
1 2paragraph =document.add_paragraph('Lorem ipsum dolor sit amet.') paragraph.style ='ListBullet'
在此⽰例中,样式使⽤其样式ID“ListBullet”指定。通常,通过去除样式名称中出现在Word⽤户界⾯(UI)中的空格来形成样式ID。所以风格'列表3号'将被指定为'ListNumber3'。但是,请注意,如果您使⽤的是本地化版本的Word,则样式ID可能来⾃英语样式名称,并且可能不会完全对应于其在Word UI中的样式名称。
应⽤粗体和斜体
为了理解如何⼤胆和斜体的⼯作,你需要了解⼀个段落⾥⾯发⽣了什么。简短的版本是这样的:
1. ⼀个段落包含所有的块级格式,如缩进,⾏⾼,制表符,等等。
2. 字符级格式,如粗体和斜体,都在应⽤的运⾏⽔平。段落中的所有内容必须在⼀个运⾏中,但可以有多个。因此,在中间有⼀个粗体
字的段落需要三个段落,⼀个正常的段落,⼀个包含该单词的粗体,以及另⼀个正常的段落。
当您的提供⽂本添加段落.add_paragraph()的⽅法,它被放⼊⼀个单⼀的运⾏。您可以添加更多的使⽤.add_run()上⼀段⽅法:
1 2paragraph =document.add_paragraph('Lorem ipsum ') paragraph.add_run('dolor sit amet.')
这将产⽣⼀个看起来像从单个字符串创建的段落。除⾮你看看XML,段落⽂本被分成⼏个部分并不明显。注意第⼀个字符串末尾的尾部空格。您需要明确在运⾏的开始和结束位置出现的位置。它们不会在运⾏之间⾃动插⼊。期待被那⼀个被抓住⼏次:)。
对象既有.bold和.italic属性,您可以设置其值为运⾏:
web表单textarea1 2 3 4paragraph =document.add_paragraph('Lorem ipsum ') run =paragraph.add_run('dolor')
run.bold =True
paragraph.add_run(' sit amet.')
其产⽣的⽂字,看起来像这样:'Lorem存有悲坐阿梅德。“
请注意,您可以对结果集粗体或斜体正确的.add_run(),如果你不需要它为别的:
excel hlookup函数使用方法1 2 3paragraph.add_run('dolor').bold =True # is equivalent to:
4
5 6 7 8run =paragraph.add_run('dolor')
run.bold =True
# except you don't have a reference to `run` afterward
它不是必须提供的⽂字给.add_paragraph()⽅法。这可以使你的代码更简单,如果你从建⽴段从运⾏反正:
1 2 3 4paragraph =document.add_paragraph() paragraph.add_run('Lorem ipsum ') paragraph.add_run('dolor').bold =True paragraph.add_run(' sit amet.')
应⽤字符样式
除了段落样式,其中指定⼀组段落级别设置,Word有字符样式其指定⼀组运⾏级别设置。⼀般来说,您可以将字符样式视为指定字体,包括其字体,⼤⼩,颜⾊,粗体,斜体等。
像段落样式,字符样式必须已经与你在打开的⽂档中定义的Document()调⽤(参见)。
添加新运⾏时可以指定字符样式:
1 2paragraph =document.add_paragraph('Normal text, ') paragraph.add_run('text with emphasis.', 'Emphasis')
您还可以在运⾏创建后将样式应⽤于运⾏。此代码产⽣的结果与上⾯的⾏相同:
1 2 3paragraph =document.add_paragraph('Normal text, ') run =paragraph.add_run('text with emphasis.') run.style ='Emphasis'
与段落样式⼀样,通过删除名称中出现在Word UI中的空格形成样式ID。所以风格'微妙强调'将被指定为'SubtleEmphasis'。请注意,如果您使⽤的是本地化版本的Word,则样式ID可能来⾃英语样式名称,并且可能不对应于其在Word UI中的样式名称。
document.add_page_break()
备注:参考⽹址
官⽅教程:
表格样式集合:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论