怎么修改word所有文件的页眉页脚字体大小

for i in table:

        for row in i.as_table():
            row = row.as_row()
            row_tex = row.get_text().strip()
            if "研究药物给药" in row_tex:
                delete_mode = True

                # 删除当前单元格
            if delete_mode:
                row.remove()

                # 结束删除范围
            if "严重不良事件" in row_tex:
                delete_mode = False

为什么删除之后还要换行呢

@hhh1111 遗憾的是,上述问题不够清楚。您能否详细说明或提供输入、输出和预期输出文档以及可运行的代码,以便我们重现该问题。

row.remove() 使用删除,删除后还有空行占位符

@hhh1111 row.remove() 方法删除整个表行。如果可能的话,您能否在此处提供一个简单的输入文档、可运行代码和有问题的输出以供我们参考?我们将检查该问题并为您提供更多信息。

A post was split to a new topic: 请问怎么读取excel文件所有内容为字符串呢

def add_comments_utils(file_path):
    doc = aw.Document(file_path)
    # 修改页面页脚数据
    delete_mode = False
    table = doc.get_child_nodes(aw.NodeType.TABLE, True)
    for i in table:
        for row in i.as_table():

            row = row.as_row()
            row_tex = row.get_text().strip()
            if "研究药物给药" in row_tex:
                delete_mode = True

                # 删除当前单元格
            if delete_mode:
                row.remove()

                # 结束删除范围
            if "严重不良事件" in row_tex:
                delete_mode = False
            for cell in row.as_row():
                cell = cell.as_cell()
                cell.cell_format.vertical_alignment = (
                    aw.tables.CellVerticalAlignment.TOP
                )



    for r in doc.get_child_nodes(aw.NodeType.RUN, True):
        r = r.as_run()
        r.font.size = 10.5
        r.font.name = "Times New Roman"  # 设置西文是新罗马字体
        r.font.name_far_east = "宋体"
    for hf in doc.get_child_nodes(aw.NodeType.HEADER_FOOTER, True):
        hf = hf.as_header_footer()
        for r in hf.get_child_nodes(aw.NodeType.RUN, True):
            r = r.as_run()
            r.font.size = 8
    opt = aw.replacing.FindReplaceOptions()
    doc.range.replace(",", ",", opt)
    doc.range.replace(" ", "", opt)
    doc.range.replace("(", "(", opt)
    doc.range.replace(")", ")", opt)
    doc.range.replace(";", ";", opt)
    doc.range.replace(":", ":", opt)

就是删除表格的行 还有空行存在。

@hhh1111 看起来不是空行而是空段落。如果可以的话,您能否附上您的实际输入和输出文档?不幸的是,无法通过屏幕截图分析提供的内容。

SAE narrative template.docx (29.8 KB)

比如我把这里删除了 ,就多了换行了

@hhh1111 您可以使用以下代码从文档中删除空段落:

for p in doc.get_child_nodes(aw.NodeType.PARAGRAPH, True):
    p = p.as_paragraph()
    if not p.has_child_nodes:
        p.remove()

不对 不能全删需要保留一个

只删除。这个范围直接的2个换行

@hhh1111 代码展示了基本的技术,您可以根据需要随意调整。

我要怎么判断呢,我只想删除我删除的那个范围的空格

可以拿我上传的文件 帮我看一下嘛,删除范围直接的数据和换行

@hhh1111 提供的文档和代码不会产生屏幕截图中所示的输出。因此,请创建一个简化的代码和文档,以演示该问题。

def add_comments_utils(file_path):
    doc = aw.Document(file_path)
    # 修改页面页脚数据
    delete_mode = False
    table = doc.get_child_nodes(aw.NodeType.TABLE, True)
    for i in table:
        for row in i.as_table():

            row = row.as_row()
            row_tex = row.get_text().strip()
            if "研究药物给药" in row_tex:
                delete_mode = True

                # 删除当前单元格
            if delete_mode:
                row.remove()

                # 结束删除范围
            if "严重不良事件" in row_tex:
                delete_mode = False
            for cell in row.as_row():
                cell = cell.as_cell()
                cell.cell_format.vertical_alignment = (
                    aw.tables.CellVerticalAlignment.TOP
                )

@hhh1111 这是您上面分享的相同代码。正如我所提到的,它不会产生您在屏幕截图上分享的问题输出。因此,请创建一个可运行的简单代码并提供输入、输出和预期输出文档,这将使我们能够重现该问题。如果您不回答问题,我们很难帮助您。

您可以用以上代码跑一下
SAE narrative template.docx (29.8 KB)