from openpyxl import load_workbook
import copy
wb_gongzi_files = load_workbook(data_gongzibiao_files)
wb_gongzi_files_temp = load_workbook(gongzibiao_files_temp)
sheet1 = wb_gongzi_files_temp[wb_gongzi_files_temp.sheetnames[0]]
x1 = sheet1.max_row
Font = copy.copy(sheet1.cell(2, 143).font)
Border = copy.copy(sheet1.cell(2, 143).border)
Alignment = copy.copy(sheet1.cell(2, 143).alignment)
sheet2 = wb_gongzi_files['工资表']
x2 = sheet2.max_row
for rows1 in sheet1.iter_rows(min_row=2, max_row=x1, min_col=4, max_col=4):
for i in rows1:
for rows2 in sheet2.iter_rows(min_row=2, max_row=x2, min_col=4, max_col=4):
for j in rows2:
if j.value == i.value:
sheet2.cell(row=j.row, column=144).value = sheet1.cell(row=i.row, column=143).value
sheet2.cell(row=i.row, column=144).font = Font
sheet2.cell(row=i.row, column=144).border = Border
sheet2.cell(row=i.row, column=144).alignment = Alignment
wb_gongzi_files.save(data_gongzibiao_files)
保存的时候要保证excel文件不能是手工打开的
释放资源就是释放程序中申请变量及对象时的内存资源,有的还会将缓存中的数据送到文件中保存再清理,总之就是扫尾工作。
问题1
提供参考链接【openpyxl Excel写入文件时,莫名会丢失数据】,期望对你有所帮助:https://blog.csdn.net/brightgreat/article/details/124763349
问题2【另求问wb.close()由什么用】
wb.close() #关闭工作簿(只是python不能编辑了),显示的文件不关闭
问题3【百度资料解释为释放资源,可以理解为释放占用的内存资源嘛?】
释放资源【原理学习】
字面意思:就是把占用的资源释放出来
代码中的资源释放是指:
资源有很多种,比如文件句柄、数据库连接、网络、内存等等。
另外楼上说的“堆栈”这个是错误的。需要垃圾回收的内存是堆(heap)上的,而不是堆栈(stack)上的。后者是自动清栈的。
xlsxwriter换这个试试,我之前也遇见过,实在是没找到解决方案