docx操作及库的安装

创建一个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文件的保存

  1. 查入分页符:
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文件的保存

结果为
在这里插入图片描述

  1. 进行表格的创建:
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绝对路径可以进行排序后成绩的查找

在这里插入图片描述

  1. 将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

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值