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 看起来不是空行而是空段落。如果可以的话,您能否附上您的实际输入和输出文档?不幸的是,无法通过屏幕截图分析提供的内容。
@hhh1111 您可以使用以下代码从文档中删除空段落:
for p in doc.get_child_nodes(aw.NodeType.PARAGRAPH, True):
p = p.as_paragraph()
if not p.has_child_nodes:
p.remove()
@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 这是您上面分享的相同代码。正如我所提到的,它不会产生您在屏幕截图上分享的问题输出。因此,请创建一个可运行的简单代码并提供输入、输出和预期输出文档,这将使我们能够重现该问题。如果您不回答问题,我们很难帮助您。