如果表格的sheet2中C2不为空,则调用并合并A、B文档。 如果表格的sheet2中C3或C4或C5或C6不为空,则调用并合并A、B、C文档。 如果表格的sheet2中C7不为空,则调用并合并A、B、C、D文档。 如果表格的sheet2中C8不为空,则调用并合并A、B、C、E文档。 并且避免重复合并文档
时间: 2024-03-22 08:38:59 浏览: 13
好的,根据您的需求,以下是一个修改后的Python实现,可以实现您的要求:
```python
import openpyxl
import docx
# 打开Excel表格
wb = openpyxl.load_workbook('your_file.xlsx')
# 选择Sheet2
sheet = wb['Sheet2']
# 获取C2单元格的值
c2_value = sheet['C2'].value
# 获取C3、C4、C5、C6单元格的值
c3_value = sheet['C3'].value
c4_value = sheet['C4'].value
c5_value = sheet['C5'].value
c6_value = sheet['C6'].value
# 获取C7、C8单元格的值
c7_value = sheet['C7'].value
c8_value = sheet['C8'].value
# 打开公司登记申请书word文档
doc1 = docx.Document('document_A.docx')
# 打开股东会决议word文档
doc2 = docx.Document('document_B.docx')
# 如果C2单元格不为空
if c2_value is not None:
# 将doc2中的内容添加到doc1的末尾
for p in doc2.paragraphs:
doc1.add_paragraph(p.text)
# 设置标志位,避免重复打开和合并文档
flag = True
# 如果C3、C4、C5、C6单元格有任意一个不为空
if c3_value or c4_value or c5_value or c6_value:
# 打开第三个文档
doc3 = docx.Document('document_C.docx')
# 将doc3中的内容添加到doc2的末尾
for p in doc3.paragraphs:
doc2.add_paragraph(p.text)
# 将doc2中的内容添加到doc1的末尾
for p in doc2.paragraphs:
doc1.add_paragraph(p.text)
# 设置标志位,避免重复打开和合并文档
flag = True
# 如果C7单元格不为空
if c7_value is not None:
# 打开第四个文档
doc4 = docx.Document('document_D.docx')
# 将doc4中的内容添加到doc3的末尾
for p in doc4.paragraphs:
doc3.add_paragraph(p.text)
# 将doc3中的内容添加到doc2的末尾
for p in doc3.paragraphs:
doc2.add_paragraph(p.text)
# 将doc2中的内容添加到doc1的末尾
for p in doc2.paragraphs:
doc1.add_paragraph(p.text)
# 设置标志位,避免重复打开和合并文档
flag = True
# 如果C8单元格不为空
if c8_value is not None:
# 打开第五个文档
doc5 = docx.Document('document_E.docx')
# 将doc5中的内容添加到doc3的末尾
for p in doc5.paragraphs:
doc3.add_paragraph(p.text)
# 将doc3中的内容添加到doc2的末尾
for p in doc3.paragraphs:
doc2.add_paragraph(p.text)
# 将doc2中的内容添加到doc1的末尾
for p in doc2.paragraphs:
doc1.add_paragraph(p.text)
# 设置标志位,避免重复打开和合并文档
flag = True
# 如果有任意一个单元格不为空,且标志位为True
if flag:
# 保存合并后的文档
doc1.save('merged_document.docx')
```
对于避免重复合并的问题,您可以在每个if语句块中设置一个标志位flag,用于判断是否已经打开和合并了文档。具体实现可参考上述代码。
希望能够帮到您。如果您有其他问题,欢迎随时提出。