最近遇到一个需求。
1. 需要对比两个 excel 文档,将对比结果输出
2. 将其中一个表格中内容整理后输出到 word 中
手工实现这些需求也是可以的,但是如果 excel 中行数比较多,那么就比较繁琐了。所以我们想到用 python 实现。
如下代码所示:
import openpyxl
from docx import Document
from docx.shared import Inches
document = Document()
document.add_heading('审计日志描述汇总', 0)
# 打开 excel 文件, 获取工作簿对象
# oldExcel = openpyxl.load_workbook('old.xlsx')
newExcel=openpyxl.load_workbook('new.xlsx')
newSheet = newExcel.active
new_sjrz_dic={}
# old_sjrz_dict={}
for row in newSheet.rows:
if len(row)>1:
new_sjrz_dic[row[1].value]=row[0].value
title=row[1].value
try:
document.add_heading(title[:title.index('[')], level=2)
document.add_paragraph('中文描述', style='List Bullet')
document.add_paragraph(row[1].value)
document.add_paragraph('英文描述', style='List Bullet')
document.add_paragraph(row[0].value)
except :
pass
# print(newSheet['B2'].value)
# 获取指定的 sheet
# sheet3 = oldExcel['审计日志']
# for row in sheet3.rows:
# if len(row)>1:
# old_sjrz_dict[row[6].value]=row[8].value
# 比较两个表单中差异 并将差异输出
# for k,v in new_sjrz_dic.items():
# if k not in old_sjrz_dict:
# print(k+' '+v)
document.save('审计日志描述汇总.docx')