创建一个doc文件
1.安装库:
使用国内豆瓣提供的源
pip install 安装包 -i https://pypi.douban.com/simple/
2创建一个文档:
from docx import Document
from docx.shared import Inches#定义尺寸
from docx.shared import Pt#定义像素大小
document=Document()
# document=Document('111.docx')对文件进行修改操作的命令
para_1=document.add_paragraph('海燕',)#创建一个段落
para_1.add_run('文字').bold=True#再这个段落后面进行文本的添加并加粗
para_1.add_run('八神')
document.save('111.docx')#doc文件的保存
2给docx文档进行文字格式的设置:
from docx import Document
from docx.oxml.ns import qn
from docx.shared import Inches#定义尺寸
from docx.shared import Pt#定义像素大小
document=Document()
# document=Document('111.docx')对文件进行修改操作的命令
style1=document.styles['Normal']
style1.font.name='Times New Roman'#英文字体设置
style1.element.rPr.rFonts.set(qn('w:eastAsia'),'宋体')#进行中文字体设置
para_1=document.add_paragraph('海燕',style=style1)#创建一个段落
para_1.add_run('文字').bold=True#再这个段落后面进行文本的添加并加粗
para_1.add_run('weiruan').bold=True#再这个段落后面进行文本的添加并加粗
document.save('111.docx')#doc文件的保存
- 查入分页符:
from docx import Document
from docx.oxml.ns import qn#引入中文字体设置模块
document=Document()
# document=Document('111.docx')对文件进行修改操作的命令
para_1=document.add_paragraph('海燕',)#创建一个段落
document.add_page_break()#进行分页符操作
para_2=document.add_paragraph('海燕2')
document.save('111.docx')#doc文件的保存
from docx import Document
from docx.oxml.ns import qn#引入中文字体设置模块
from docx.shared import Inches#定义尺寸
from docx.shared import Pt#定义像素大小
document=Document()
# document=Document('111.docx')对文件进行修改操作的命令
para_1=document.add_paragraph('海燕',)#创建一个段落
img1=document.add_picture('222.jpg',width=None,height=None)#进行默认图片大小设置
document.add_picture('111.jpg',width=Inches(2.0))#进行图片大小设置
document.save('111.docx')#doc文件的保存
结果为
- 进行表格的创建:
from docx import Document
document=Document()
document.add_table(rows=3,cols=4)
document.save('表格.docx')
结果为
进行标题的增加:
from docx import Document
document=Document()
document.add_heading('海燕',level=0)#level 等级从0开始如果为0则代表标题1代表1及标题。。。
document.add_heading('海燕',level=1)#level 等级从0开始如果为0则代表标题1代表1及标题。。。
document.save('标题.docx')
结果为
word的综合应用:
from random import randint
from docx.shared import Inches
document=Document()
document.add_heading('海洋')#查入标题
document.add_page_break()#进行分页操作
p1=document.add_paragraph('第一个段落')#插入一个段落
p1.insert_paragraph_before('插入在第一个段落前')#再某一段前面进行插入
table=document.add_table(rows=4,cols=3)#创建一个表格
cell_0=table.cell(0,0)
cell_0.text='名字'
cell_1=table.cell(0,1)
cell_1.text='数学成绩'
cell_2=table.cell(0,2)
cell_2.text='英语成绩'
for i in range(1,4):
#进行表格数据的插入
table.cell(i,0).text='alex{0}'.format(i)
table.cell(i,1).text=str(randint(49,80))
table.cell(i,2).text=str(randint(39,90))
document.save('成绩.docx')
word和excel的综合应用:
1.excel 进行数据排序后我们怎样取出成绩第一的同学名字和分数:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
score=pd.read_excel('score.xlsx',sheet_name=0)
score1=score.sort_values(by='score',ascending=False,inplace=False)
print(score1.name)
print(score1.name[0])#从结果我们看出第一名是alex8但是取出是alex0
print(score1.iloc[0,:]['name'])#使用iloc绝对路径可以进行排序后成绩的查找
- 将score成绩从小到大插入到word表格中并生成树状图:
import pandas as pd
from docx import Document
from docx.shared import Inches
document=Document()
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
score=pd.read_excel('score.xlsx',sheet_name=0)
score1=score.sort_values(by='score',ascending=False,inplace=False)
document.add_paragraph('这个班级总共有{0}学生参加了考试,成绩表格如下'.format(len(score1.name)))
table=document.add_table(rows=len(score1.name)+1,cols=len(score1.columns))
table.cell(0,0).text=score1.columns[0]
table.cell(0,1).text=score1.columns[1]
table.cell(0,2).text=score1.columns[2]
for i ,(index,row) in enumerate(score1.iterrows()):
table.cell(i+1,0).text=str(row['id'])
table.cell(i+1,1).text=str(row['name'])
table.cell(i+1,2).text=str(row['score'])
document.add_picture('成绩img.png',width=Inches(4.0),height=Inches(5.0))
document.save('成绩word.docx')
再编写过程中遇到问题查看了这些博主的文档:
1.https://blog.csdn.net/resol702/article/details/88034867?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158794901819724848322067%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=158794901819724848322067&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-2