用python创建一个实验报告

from docx import Document
from docx.shared import Cm,Pt,RGBColor
from docx.oxml.ns import qn
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT#用于垂直对齐、居中
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT#用于水平对齐、居中
from docx.enum.section import WD_SECTION_START
# 创建文档对象
doc = Document()
#添加标题
run1 = doc.add_heading('',level=1).add_run('计算机数据监测')
#改变字体颜色
run1.font.color.rgb = RGBColor(0,0,0)
#水平居中
p1 = doc.paragraphs[0]
p1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
#设置字体大小
run1.font.size = Pt(30)
#设置字体样式,需要2步实现
run1.font.name = '微软雅黑'
run1._element.rPr.rFonts.set(qn('w:eastAsia'),'微软雅黑')
#设置加粗
run1.bold = True
#同样的方法设置“实验报告”
doc.add_paragraph('\n\n')
p2 =  doc.add_paragraph()
run2 =p2.add_run('实    验    报    告')
p2.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
run2.font.name = '微软雅黑'
run2._element.rPr.rFonts.set(qn('w:eastAsia'),'微软雅黑')
run2.bold = True
run2.font.size = Pt(40)

doc.add_paragraph('\n\n\n\n\n\n\n')
p3 = doc.add_paragraph()
run31 = p3.add_run('课程名称:')
run31.font.size = Pt(18)
run32 = p3.add_run('      嵌入式智能控制技术与python编程      \n')
run32.font.size = Pt(18)
#添加下划线
run32.font.underline = True
run41 = p3.add_run('专         业:')
run41.font.size = Pt(18)
run42 = p3.add_run('                                  电竞专业                             \n')
run42.font.underline = True
run42.font.size = Pt(18)
run51 = p3.add_run('班         级:')
run51.font.size = Pt(18)
run52 = p3.add_run('                                   14325682                               \n')
run52.font.size = Pt(18)
run52.font.underline = True
run61 = p3.add_run('学         号:')
run61.font.size = Pt(18)
run62 = p3.add_run('                               123456789                               \n')
run62.font.size = Pt(18)
run62.font.underline = True
run71 = p3.add_run('学生姓名:')
run71.font.size = Pt(18)
run72 = p3.add_run('                                  王者荣耀                                  \n')
run72.font.size = Pt(18)
run72.font.underline = True
run81 = p3.add_run('指导教师:')
run81.font.size = Pt(18)
run82 = p3.add_run('                                  刀塔2                                  \n')
run82.font.size = Pt(18)
run82.font.underline = True
p4 = doc.add_paragraph()
run91 = p4.add_run('\n\n\n\n')
run92 = p4.add_run('2023 年 05 月 29 日')
run92.font.size = Pt(18)
p4.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
#编写第2页内容
doc.add_section(WD_SECTION_START.NEW_PAGE)
#添加一个具有7行4列的表格
table = doc.add_table(rows=7, cols=4)
table.cell(0,1).merge(table.cell(0,3))
#合并单元格
for i in range(2,7):
    table.cell(i,1).merge(table.cell(i,3))
table.cell(4,0).merge(table.cell(6,0))
# 设置表格样式
table.style = 'Table Grid'
#设置每个单元格元素水平垂直居中
for row in table.rows:
    for cell in row.cells:
        # 水平居中
        cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 水平居中
        # 垂直居中
        cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER #垂直居中
#插入内容
table.cell(0,0).paragraphs[0].add_run("实验题目")
table.cell(0,1).paragraphs[0].add_run("探究影响压力作用的因素")
table.cell(1,0).paragraphs[0].add_run("班级:")
table.cell(1,1).paragraphs[0].add_run("日期:")
table.cell(1,2).paragraphs[0].add_run("组次:")
table.cell(1,3).paragraphs[0].add_run("成员:")
#向左对齐
for i in range(0,4):
    table.cell(1, i).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
table.cell(2,0).paragraphs[0].add_run("实验目的:")
table.cell(2,2).paragraphs[0].add_run("研究压力的作用效果与压力的大小、受力面积的关系:")
table.cell(3,0).paragraphs[0].add_run("实验器材:")
table.cell(3,1).paragraphs[0].add_run("压力小桌    海绵    钩码")
table.cell(4,0).paragraphs[0].add_run("探究过程:")
table.cell(4,1).paragraphs[0].add_run("提出问题:")
table.cell(4,1).paragraphs[0].add_run("压力的作用效果与哪些因素有关?")
table.cell(4,1).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
table.cell(5,1).paragraphs[0].add_run("猜想\n")
table.cell(5,1).paragraphs[0].add_run("1:压力的作用效果与————有关\n")
table.cell(5,1).paragraphs[0].add_run("2:压力的作用效果与————有关")
table.cell(5,1).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
table.cell(6,1).paragraphs[0].add_run("进行实验:\n")
#插入图片
run61 = table.cell(6,1).paragraphs[0].add_run()
run61.add_picture('test.jpg',width=Cm(10.5),height=Cm(6))
table.cell(6,1).paragraphs[0].add_run("\n")
table.cell(6,1).paragraphs[0].add_run("1、如甲图,把小桌放在海面上,观察海绵被压下的深浅\n")
table.cell(6,1).paragraphs[0].add_run("2、如乙图,在桌面上放上钩码,观察海绵被压下的深浅\n")
table.cell(6,1).paragraphs[0].add_run("3、如丙图,把小桌翻过来,桌面朝下,并在其上放上和乙图相同的钩码,观察海绵被压下的深浅\n")
#向上向左对齐
table.cell(6,1).vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.TOP
table.cell(6,1).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
# 设置表格每一行的高度
h0 = table.rows[0]
h0.height = Cm(1)
h1 = table.rows[1]
h1.height = Cm(1.5)
h2 = table.rows[2]
h2.height = Cm(1)
h3 = table.rows[3]
h3.height = Cm(2)
h4 = table.rows[4]
h4.height = Cm(1.5)
h5 = table.rows[5]
h5.height = Cm(4)
h5 = table.rows[6]
h5.height = Cm(11)
# #设置每列的宽度
# c1 = table.columns[0]
# c1.width = Cm(4)
# c2 = table.columns[1]
# c2.width = Cm(11)
doc.save('example.docx')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值