今天学习什么?
今天我们来学习如何用Python创建漂亮的Word文档!
添加不同元素
添加标题:
from docx import Documentdoc = Document()# 添加不同级别的标题doc.add_heading('一级标题', 0)doc.add_heading('二级标题', 1)doc.add_heading('三级标题', 2)doc.save('标题示例.docx')添加段落:
# 添加普通段落doc.add_paragraph('这是普通段落。')# 添加加粗段落doc.add_paragraph('这是加粗文字。', style='Intense Quote')添加列表:
# 无序列表doc.add_paragraph('项目1', style='List Bullet')doc.add_paragraph('项目2', style='List Bullet')doc.add_paragraph('项目3', style='List Bullet')# 有序列表doc.add_paragraph('步骤1', style='List Number')doc.add_paragraph('步骤2', style='List Number')doc.add_paragraph('步骤3', style='List Number')添加表格:
# 创建表格table = doc.add_table(rows=3, cols=3)table.style = 'Table Grid'# 填充数据data = [ ['姓名', '年龄', '班级'], ['小明', 10, '五年级一班'], ['小红', 11, '五年级二班']]for i, row in enumerate(data):for j, cell in enumerate(row): table.cell(i, j).text = str(cell)添加图片:
# 添加图片doc.add_picture('图片.jpg', width=Inches(4))设置格式
设置字体格式:
from docx.shared import Pt, Inchesfrom docx.enum.text import WD_ALIGN_PARAGRAPH# 创建段落paragraph = doc.add_paragraph()run = paragraph.add_run('这是格式化的文字')# 设置字体run.font.name = '宋体'run.font.size = Pt(12)run.font.bold = Truerun.font.italic = True设置段落格式:
# 设置对齐方式paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER# 设置缩进paragraph.paragraph_format.first_line_indent = Pt(24)实际案例
案例1:创建正式报告
from docx import Documentfrom docx.shared import Pt, Inchesfrom docx.enum.text import WD_ALIGN_PARAGRAPHfrom datetime import datetimedoc = Document()# 设置页面边距sections = doc.sectionsfor section in sections: section.top_margin = Inches(1) section.bottom_margin = Inches(1) section.left_margin = Inches(1.25) section.right_margin = Inches(1.25)# 添加标题title = doc.add_heading('学生成绩分析报告', 0)title.alignment = WD_ALIGN_PARAGRAPH.CENTER# 添加日期date_para = doc.add_paragraph()date_para.alignment = WD_ALIGN_PARAGRAPH.CENTERdate_run = date_para.add_run(f'生成日期:{datetime.now().strftime("%Y年%m月%d日")}')date_run.font.size = Pt(10)# 添加空行doc.add_paragraph()# 添加正文内容doc.add_heading('一、基本情况', level=1)doc.add_paragraph('本次考试共有50名学生参加,考试科目包括数学、语文和英语。')doc.add_heading('二、成绩统计', level=1)# 创建统计表格table = doc.add_table(rows=4, cols=4)table.style = 'Table Grid'# 表头headers = ['科目', '最高分', '最低分', '平均分']for i, header in enumerate(headers): table.cell(0, i).text = header# 数据data = [ ['数学', '98', '45', '78.5'], ['语文', '96', '52', '81.2'], ['英语', '99', '48', '79.8']]for i, row in enumerate(data, 1):for j, cell in enumerate(row): table.cell(i, j).text = cell# 添加分析doc.add_heading('三、分析与建议', level=1)doc.add_paragraph('1. 数学科目成绩分布较为合理,但需要加强对后进生的辅导。')doc.add_paragraph('2. 语文科目整体表现良好,建议继续保持。')doc.add_paragraph('3. 英语科目需要加强口语和听力训练。')# 添加总结doc.add_heading('四、总结', level=1)doc.add_paragraph('总体来看,本次考试成绩达到了预期目标,但仍需继续努力,争取更好的成绩。')# 保存文档doc.save('成绩分析报告.docx')print("报告创建完成!")案例2:创建个人简历
from docx import Documentfrom docx.shared import Pt, Inchesfrom docx.enum.text import WD_ALIGN_PARAGRAPHdoc = Document()# 添加标题title = doc.add_heading('个人简历', 0)title.alignment = WD_ALIGN_PARAGRAPH.CENTER# 添加基本信息doc.add_heading('基本信息', level=1)info_table = doc.add_table(rows=4, cols=2)info_table.style = 'Table Grid'info_data = [ ['姓名', '张三'], ['年龄', '10岁'], ['学校', '阳光小学'], ['班级', '五年级一班']]for i, (label, value) in enumerate(info_data): info_table.cell(i, 0).text = label info_table.cell(i, 1).text = value# 添加学习情况doc.add_heading('学习情况', level=1)doc.add_paragraph('学习成绩优秀,连续三年获得"三好学生"称号。')# 添加特长doc.add_heading('个人特长', level=1)doc.add_paragraph('编程', style='List Bullet')doc.add_paragraph('绘画', style='List Bullet')doc.add_paragraph('篮球', style='List Bullet')# 添加获奖情况doc.add_heading('获奖情况', level=1)award_table = doc.add_table(rows=3, cols=3)award_table.style = 'Table Grid'award_headers = ['时间', '奖项', '级别']for i, header in enumerate(award_headers): award_table.cell(0, i).text = headeraward_data = [ ['2023年', '编程比赛一等奖', '市级'], ['2024年', '数学竞赛二等奖', '区级']]for i, row in enumerate(award_data, 1):for j, cell in enumerate(row): award_table.cell(i, j).text = cell# 保存文档doc.save('个人简历.docx')print("简历创建完成!")动手实践
今天的任务:
创建带格式的Word文档 添加表格和列表 设置字体和段落格式
练习1:创建活动方案
from docx import Documentfrom docx.shared import Ptfrom docx.enum.text import WD_ALIGN_PARAGRAPHdoc = Document()# 添加标题title = doc.add_heading('班级春游活动方案', 0)title.alignment = WD_ALIGN_PARAGRAPH.CENTER# 添加基本信息doc.add_paragraph('活动时间:2024年4月15日')doc.add_paragraph('活动地点:城市公园')doc.add_paragraph('参加人员:五年级一班全体同学')# 添加活动安排doc.add_heading('活动安排', level=1)schedule_table = doc.add_table(rows=4, cols=3)schedule_table.style = 'Table Grid'schedule_headers = ['时间', '活动内容', '负责人']for i, header in enumerate(schedule_headers): schedule_table.cell(0, i).text = headerschedule_data = [ ['8:00-9:00', '集合出发', '班主任'], ['9:00-11:30', '自由活动', '各小组长'], ['11:30-13:00', '午餐休息', '生活委员']]for i, row in enumerate(schedule_data, 1):for j, cell in enumerate(row): schedule_table.cell(i, j).text = cell# 添加注意事项doc.add_heading('注意事项', level=1)doc.add_paragraph('准时集合,不迟到早退', style='List Bullet')doc.add_paragraph('注意安全,不擅自行动', style='List Bullet')doc.add_paragraph('爱护环境,不乱扔垃圾', style='List Bullet')# 保存文档doc.save('春游活动方案.docx')print("活动方案创建完成!")本章小结
今天学到了什么?
可以添加不同级别的标题 可以添加段落和列表 可以创建和填充表格 可以设置字体和段落格式 可以创建专业的文档
明天预告:
明天我们将学习PDF处理!
练习题
如何添加不同级别的标题? 如何创建表格? 如何设置字体格式?
学习心得
今天的学习心得:_______________
遇到的问题:_______________
明天要重点学习:_______________
夜雨聆风