问题描述

现有一份关于学生每次实验报告的汇总Excel表格,要求小东同志把成绩登记到对应的Word实验报告中去,一个班级95份,一共6次试验报告,总计480份报告。完全依靠手工,这是何等的毅力。。。鉴于此,特地写了一个简单的demo以备不时之需。

样例

需求: 将图1中的成绩登记在图2的成绩记录框中,要求字体样式除颜色为红色为红色外均保持一致。

实验环境

本文的实验环境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10

实验准备

安装 python-docx

pip install python-docx

注意

安装的是 python-docx,而引入的是 docx

代码

# -*- coding: utf-8 -*-
# Author:gaozhengjie
# Blog:https://www.jianshu.com/u/02877dbc2662
# E-mail:3170601003@cuit.edu.cn
# Python Version:3.6.1
# Time:2018/1/16
# Description:登记成绩,从Excel中读取数据存储到Word的指定位置import openpyxl
from docx import Document
from docx.shared import RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt
import re
import oswb = openpyxl.load_workbook("成绩表.xlsx")  # 打开成绩文件
sheet = wb.get_sheet_by_name("Sheet1")  # 读取到指定的Sheet页
file_list = os.listdir()
file_list2str = "/".join(file_list)  # 将list转换为stringfor i in range(2, sheet.max_row + 1):# 遍历学号,实验报告命名方式 "学号_姓名_实验报告.docx" 或 "学号_姓名_实验报告"# python-docx 库兼容处理 .docx 和 .docinfo = str(sheet['A'+str(i)].value) + '_' + sheet['B'+str(i)].value + '_实验报告'filename_regex = re.compile(info + r'.doc(x)?')  # x可选mo = filename_regex.search(file_list2str)if mo == None:# 没有匹配到,则将该学生的信息单独打印或保存在一个文本中,便于后续人工登记print('*' * 50)print("出错信息:未找到该文件 " + info)print('*' * 50)else:filename = mo.group()document = Document(filename)table = document.tables[0]  # 取Word中的第一个表格if table.cell(4,0).text == "成绩":table.cell(4,1).text = ''  # 清空表格中的内容score = str(sheet['C'+str(i)].value)run = table.cell(4,1).paragraphs[0].add_run(score)  # 添加段落内容table.cell(4,1).paragraphs[0].paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER  # 居中run.font.color.rgb = RGBColor(0xff, 0x00, 0x00)  # 红色字体run.font.size = Pt(14)  # 字体大小 四号,14磅run.font.bold = True  # 加粗document.save(filename)  # 保存else:print('*' * 50)print("出错信息:未找到成绩栏 " + info)print('*' * 50)

参考文献

[1] 字体大小与磅数的对应关系
[2] Python自动化修改word实例

登记成绩之小东助手v1相关推荐

  1. qq批量登录软件_QQ一键签到助手v1.0

    点击上方蓝字,记得关注我们! 往期回顾Hoho分享公众号 从0开始用Java做智慧物联网 哔哩哔哩4K视频批量下载 短视频批量解析助手v1.0 Hoho分享公众号,一个专注分享各种实用有趣的公众号 软 ...

  2. 易语言误报优化助手 v1.5

    名称:易语言误报优化助手 v1.5 版本:1.5 软件大小:1.17 MB 软件语言:简体中文 软件授权:共享版 应用平台:Win7/Win8/Win2003/WinXP 易语言误报优化助手是为易友定 ...

  3. 小康qq小助手 v1.0 官网

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  4. 微凉编程助手 v1.08官方版

    名称:微凉编程助手 v1.08官方版 版本:1.08 软件大小:1.48 MB 软件语言:简体中文 软件授权:共享版 应用平台:WinXp, Win2003, WinVista, Win 7, Win ...

  5. 所立得新浪博客群发助手V1.3特别版

    <所立得新浪博客群发助手V1.3特别版>及其注册补丁吾有啊-草根站长资源站提供免费下载,使用无任何限制.如果你还没有博客群发推广工具,WuYouA.CoM<所立得新浪博客群发助手V1 ...

  6. 精易编程助手 v1.09官方版

    名称:精易编程助手 v1.09官方版 版本:1.09 软件大小:2.40 MB 软件语言:简体中文 软件授权:共享版 应用平台:WinXp, Win2003, WinVista, Win2000, 网 ...

  7. 基于组态王6.55的实时数据采集助手V1.0

    采集助手V1.0使用说明 采集助手V1.0是基于北京亚控科技的组态王6.55开发的,用于对带485通讯功能的流量计.电能表等智能仪表的实时数据进行采集的程序,可将采集到的数据记录为xls电子表格形式, ...

  8. 局域网关机助手 v1.0.bat 批处理

    局域网关机助手 v1.0.bat 批处理 测试:Windows XP SP3 绝对可以用 今天写了一个方便局域网关机的批处理,等待小白来测试,有问题请留言告诉我,谢谢使用. 功能:1.定时重启指定的计 ...

  9. 小海豚上网助手 v1.2 下载

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

最新文章

  1. 巨石加密_点餐:如何吃一个可怕的巨石
  2. android 怎么判断activity 从哪里启动的
  3. linux 空闲等待时间TMOUT 反空闲设置 简介
  4. Linux更改终端的用户名和主机名的颜色
  5. Oracle中临时表的深入研究
  6. css 对话框阴影,科技常识:css实现不规则图形的阴影(如对话框)
  7. “华为”和“荣耀”手机有什么区别?
  8. Django Web开发【2】Django入门
  9. 2.5配置自定义HttpMessageConverters
  10. 快速遍历目录下所有文件名
  11. 支持p2p的m3u8.php,P2P版M3U8解析源码2.1正式版
  12. 计量经济学计算机实验报告,计量经济学实验报告.doc
  13. STM32驱动SG90舵机
  14. 计算机搜索栏打字不显示,win7系统电脑使用搜狗输入法打字看不到选字框的解决方法...
  15. android scheme 配置多个,Android Scheme URL 使用方法
  16. Java CompletableFuture.runAfterEither任何一个完成就执行Runnable
  17. 人民币大小写转换格式
  18. 读书笔记 - 多智能体强化学习在城市交通网络信号的综述2018
  19. 不到 100 行 Python 代码即可实现换脸功能
  20. clinvar数据库简介

热门文章

  1. 反弹shell(未完待续)
  2. springmvc自定义参数解析器/类型转换器
  3. Makefile中命令if用法
  4. 统计推断——假设检验——卡方检验
  5. python小数的进制转换_Python实现的十进制小数与二进制小数相互转换功能
  6. Web图片分享与管理程序生成工具
  7. LVGL学习(1):中文字体的转换和汉字显示
  8. ArcMap卷帘工具
  9. 网站安全服务应该如何安全储存用户数据
  10. 软件工程原理及方法学习随笔——第一次阅读作业