登記成績之小東助手v1

問題描述

現(xiàn)有一份關(guān)于學生每次實驗報告的匯總Excel表格,要求小東同志把成績登記到對應的Word實驗報告中去褥实,一個班級95份呀狼,一共6次試驗報告,總計480份報告损离。完全依靠手工哥艇,這是何等的毅力。僻澎。貌踏。鑒于此,特地寫了一個簡單的demo以備不時之需窟勃。

樣例

圖1 成績表樣例
圖2 實驗報告樣例

需求:將圖1中的成績登記在圖2的成績記錄框中祖乳,要求字體樣式除顏色為紅色為紅色外均保持一致。

實驗環(huán)境

本文的實驗環(huán)境是 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:http://www.reibang.com/u/02877dbc2662
# E-mail:3170601003@cuit.edu.cn
# Python Version:3.6.1
# Time:2018/1/16
# Description:登記成績,從Excel中讀取數(shù)據(jù)存儲到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 os

wb = openpyxl.load_workbook("成績表.xlsx")  # 打開成績文件
sheet = wb.get_sheet_by_name("Sheet1")  # 讀取到指定的Sheet頁
file_list = os.listdir()
file_list2str = "/".join(file_list)  # 將list轉(zhuǎn)換為string

for i in range(2, sheet.max_row + 1):
    # 遍歷學號汁咏,實驗報告命名方式 "學號_姓名_實驗報告.docx" 或 "學號_姓名_實驗報告"
    # python-docx 庫兼容處理 .docx 和 .doc

    info = 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:
        # 沒有匹配到亚斋,則將該學生的信息單獨打印或保存在一個文本中,便于后續(xù)人工登記
        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 = ''  # 清空表格中的內(nèi)容
            score = str(sheet['C'+str(i)].value)
            run = table.cell(4,1).paragraphs[0].add_run(score)  # 添加段落內(nèi)容
            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] 字體大小與磅數(shù)的對應關(guān)系
[2] Python自動化修改word實例

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帅刊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子漂问,更是在濱河造成了極大的恐慌厚掷,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件级解,死亡現(xiàn)場離奇詭異,居然都是意外死亡田绑,警方通過查閱死者的電腦和手機勤哗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掩驱,“玉大人芒划,你說我怎么就攤上這事∨费ǎ” “怎么了民逼?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涮帘。 經(jīng)常有香客問我拼苍,道長,這世上最難降的妖魔是什么调缨? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任疮鲫,我火速辦了婚禮吆你,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俊犯。我一直安慰自己妇多,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布燕侠。 她就那樣靜靜地躺著者祖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绢彤。 梳的紋絲不亂的頭發(fā)上七问,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音杖虾,去河邊找鬼烂瘫。 笑死,一個胖子當著我的面吹牛奇适,可吹牛的內(nèi)容都是我干的坟比。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼嚷往,長吁一口氣:“原來是場噩夢啊……” “哼葛账!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起皮仁,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤籍琳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贷祈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趋急,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年势誊,在試婚紗的時候發(fā)現(xiàn)自己被綠了呜达。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡粟耻,死狀恐怖查近,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挤忙,我是刑警寧澤霜威,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站册烈,受9級特大地震影響戈泼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一矮冬、第九天 我趴在偏房一處隱蔽的房頂上張望谈宛。 院中可真熱鬧,春花似錦胎署、人聲如沸吆录。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恢筝。三九已至,卻和暖如春巨坊,著一層夾襖步出監(jiān)牢的瞬間撬槽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工趾撵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侄柔,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓占调,卻偏偏與公主長得像暂题,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子究珊,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容