、
- '''
- docx教案的端午节、劳动节、清明节格子里内容清除,改为“XX节放假”
- 作者:AI对话大师、阿夏补充
- 时间:2024年4月25日日
- '''
-
- import os
- from docx import Document
- from docx.oxml.ns import nsdecls
- from docx.oxml import parse_xml
- from docx.oxml import OxmlElement
- from docx.shared import Pt
- from docx.oxml.ns import qn
- from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT, WD_ALIGN_VERTICAL
- # from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_TEXT_ORIENTATION
-
- # 指定文件夹路径
- path = r'D:\test\02办公类\91周计划4份_2024年中4班\04 周计划'
- folder_path = path + r'\06加粗测试'
- new_path = path + r'\07节日'
- os.makedirs(new_path, exist_ok=True)
-
- j = ['劳动节放假', '清明节放假', '端午节放假']
-
-
- # 遍历文件夹下的所有文件
- for filename in os.listdir(folder_path):
- if filename.endswith('.docx'):
- doc_path = os.path.join(folder_path, filename)
-
- # 打开Word文档
- doc = Document(doc_path)
-
- # 遍历文档中的所有表格
- for table in doc.tables:
- # 遍历表格的所有行
- for row in table.rows:
- # 遍历行的所有单元格
- for cell in row.cells:
- # 提取第一行的文字
- first_row_text = cell.paragraphs[0].text
-
- for jj in j:
- # 判断是否符合条件
- if len(first_row_text) >= 10 and first_row_text[5:10] == jj:
- # 清空单元格的内容
- cell.text = ''
-
- # 添加新文字“劳动节放假”,设置宋体、20号字体,竖排文字
- # 在清空后的单元格内写入指定文字
-
- # 在清空后的单元格内写入指定文字
- p = cell.paragraphs[0]
- p.add_run(jj)
- run = p.runs[0]
- run.font.name = '宋体'
- run.font.size = Pt(100)
- run._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
- # 单元格内的文字方向设置为纵向
- cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER
- # 设置单元格垂直居中
- p.alignment = WD_ALIGN_VERTICAL.CENTER
- # p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
- # p.text_orientation = WD_TEXT_ORIENTATION.VERTICAL
- # run.orientation = WD_TEXT_ORIENTATION.VERTICAL
- # run.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
-
- # # 在清空后的单元格内写入指定文字
- # p = cell.paragraphs[0]
- # p.add_run(jj)
- # run = p.runs[0]
- # run.font.name = '宋体'
- # run.font.size = Pt(20)
- # run.text = '\n'.join(jj)
-
- # # 设置单元格文字居中对齐
- # cell.vertical_alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
-
-
-
-
- # 保存修改后的文档,保存在新文件夹中,保持原文件名不变
- new_doc_path = os.path.join(new_path, filename)
- doc.save(new_doc_path)