Evilmartin 2022-10-21 20:53 采纳率: 80%
浏览 52
已结题

openpylx wb.seve()保存文件错误

使用openpylx库读取EXCEL文件,文件中包含150个字段,800行数据,公式及多张工作表,文件大小17M左右,对文件经行操作处理后保存。
代码可以完整运行,但最后文件保存出现错误,文件大小由17M变成4M左右了
另求问wb.close()由什么用,百度资料解释为释放资源,可以理解为释放占用的内存资源嘛?
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)

  • 写回答

3条回答 默认 最新

  • chuifengde 2022-10-21 21:40
    关注

    保存的时候要保证excel文件不能是手工打开的
    释放资源就是释放程序中申请变量及对象时的内存资源,有的还会将缓存中的数据送到文件中保存再清理,总之就是扫尾工作。

    评论

报告相同问题?

问题事件

  • 系统已结题 10月29日
  • 赞助了问题酬金15元 10月21日
  • 修改了问题 10月21日
  • 创建了问题 10月21日

悬赏问题

  • ¥15 安装powerbuilder10卡在安装程序正在运行这个页面 没有下一步任何指令
  • ¥15 关于mpi的问题:请问遇到这种情况需要怎么解决,出现这个问题后电脑不能进行mpi多核运行只能进行单核运行
  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网