作品展示——docx表格内的手动换行符更改硬回车
背景需求:
这篇成功把docx文本段落(无表格)中的“手动换行符(软回车)”变成“段落标记(硬回车)。
【技术类-02】python实现docx段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”-CSDN博客文章浏览阅读26次。【技术类-02】python实现docx段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”https://blog.csdn.net/reasonsummer/article/details/136750032
但是我的19篇周计划docx里的所有手动换行符都是在docx表格里
所以我在原有代码基础上,重新生成了——python实现docx表格文字的“手动换行符(软回车)”变成“段落标记(硬回车)”
运行前
代码展示:
'''
了解在Python里,docx的手动换行符,段落标记用什么符号表示(docx段落)
作者:AI 对话大师、百度AI对话
时间:2024年3月15日
'''from docx import Document# 读取Word文档
doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\测试word换行符\123.docx')# 初始化换行符计数器
soft_newline_count = 0
hard_newline_count = 0# 遍历文档中的每个段落
for paragraph in doc.paragraphs:for run in paragraph.runs:# 统计每个文本运行中软回车(换行符)的数量soft_newline_count += run.text.count("\n")# 每个段落结束都有一个硬回车(段落标记)hard_newline_count += 1# 遍历文档中的所有表格
for table in doc.tables:for row in table.rows:for cell in row.cells:for run in cell.paragraphs[0].runs:# 统计表格单元格中软回车(换行符)的数量soft_newline_count += run.text.count("\n")# 表格单元格中的文本也被视为一个段落,所以也有硬回车hard_newline_count += 1print(f"Word 文档中共有 {soft_newline_count} 个 '\\n' 手动换行符(软回车)。")
print(f"Word 文档中共有 {hard_newline_count} 个 <w:p> 段落标记(硬回车)。")'''
word表格文字里的手动换行符变成段落标记 (docx表格)
作者:AI对话大师、百度AI对话
时间:2024年3月15日
'''
from docx import Document
from docx.shared import Pt# 打开 Word 文档
doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\测试word换行符\123.docx')# 用于保存要删除的单元格
cells_to_delete = []# 遍历文档中的所有表格
for table in doc.tables:for row in table.rows:for cell in row.cells:# 查找单元格中的软回车(\n)if '\n' in cell.text:# 分割单元格文本,找到软回车的位置texts = cell.text.split('\n')# 清空原始单元格文本cell.text = texts[0]# 在软回车的位置插入新的段落for text in texts[1:]:new_paragraph = cell.add_paragraph(text)new_paragraph.style = cell.paragraphs[0].style # 保留原始样式# 删除原来的单元格文本中的软回车
for cell in cells_to_delete:cell.text = cell.text.replace('\n', '')doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\测试word换行符\234.docx')