![c4bfb100017e93f301481cc81285caf2.jpeg](https://i-blog.csdnimg.cn/blog_migrate/bd42264bfcde235cdf1671222f5979e5.jpeg)
前面写了几篇推文是获取股票数据的,数据获取完了接下来就是处理数据并把数据展示出来,方便我复盘直接用。数据处理环节我就不讲了,直接讲如何使用python直接将这些数据自动化生成一个报告。这里就要用到python-docx,这个库可以操作word文档。
往期文章:
coder-谢公子:Python | 获取股票历史数据 coder-谢公子:Python 爬虫 | 爬取股票概念数据 coder-谢公子:Python 爬虫 | 获取涨跌停数据安装:
pip install python-docx
目录:
1、标题
2、正文
3、字体设置
4、插图
5、表格
1、标题
使用demo
from docx import Document
from docx.shared import Pt
from docx.shared import Inches
document = Document()
document.add_heading('复盘报告', level=0)
document.add_heading('一、涨跌停分析', level=1)
document.add_page_break()
document.save('复盘报告.docx')
运行结果:
![b3f7466d8e0e8c7cc1e55186da7ad093.png](https://i-blog.csdnimg.cn/blog_migrate/4c4797ac5882cf9b7d79b6203977fa9d.png)
设置标题的函数是:add_heading()
参数:
第一个参数就是标题的文字;
level则为标题的级别
2、正文
p = document.add_paragraph('2022-07-18')
# 加粗
p.add_run('每日').bold = True
p.add_run('复盘')
# 倾斜
p.add_run('报告').italic = True
正文使用的函数是: add_paragraph(),add_run()函数可以对正文进行追加,并且可以进行加粗倾斜操作。
还有一种特别的排序文字。
# 无序号排序,黑点
document.add_paragraph(
'涨停', style='List Bullet'
)
# 有序号排序
document.add_paragraph(
'跌停', style='List Number'
)
运行结果:
![a779b85d0518df1ca81546cf46b9c7d9.png](https://i-blog.csdnimg.cn/blog_migrate/8ebb0ebcd4b4237213c755982ab5cda3.png)
这就是通过修改参数style进行控制的。
3、字体设置
# 设置字体
document.styles['Normal'].font.name = u'宋体'
# 设置字体大小
document.styles['Normal'].font.size = Pt(10)
4、插图
本来想写个引入的文字的,算了还是直接讲代码吧,废什么话呀。
# 操作图片(图片所在路径)
document.add_picture('涨停行业TOP5 2022-07-18.png', width=Inches(5))
width参数可以控制图片的大小。
5、表格
up_data = [
('电网设备', 5),
('通用设备', 4),
('汽车零部', 4)]
# 表格
table = document.add_table(rows=1, cols=2, style="Table Grid")
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '行业'
hdr_cells[1].text = '涨停个数'
for hy, amount in up_data:
row_cells = table.add_row().cells
row_cells[0].text = hy
row_cells[1].text = str(amount)
运行结果:
![9fdd3b68457040d50aff6e45db528265.png](https://i-blog.csdnimg.cn/blog_migrate/27f22211f3070e8c066a4675b387e906.png)
一开始我学做表格的时候,做出来是没有线条的,后面查了一下才知道是因为docx这个库默认边框是透明,需要设置style才可显示边框