weixin_40007085 2023-08-29 17:00 采纳率: 0%
浏览 150

openpyxl 保存文档后格式图片丢失

问题和背景:
当前使用openpyxl对excel进行操作,文件后缀是xlsx。具体是将excel1的数据插入到excel2的数据中,当插入完成后保存excel2后发现excel2文件中没有操作过的数据格式发生了变化,同时原来的图片也没有保存下来,请问openpyxl是无法完成这个动作么,有没有其他的python库可以实现这个功能。谢谢。

img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-08-29 17:57
    关注

    引用 皆我百晓生 小程序回复内容作答:
    openpyxl库是用来操作Excel文件的,它不支持保存图片。如果你想要保留图片或者其他格式的信息,可以考虑使用其他的Python库,例如xlwings、pywin32等。

    使用xlwings库可以在Excel中直接操作数据和格式,包括插入图片。下面是一个简单的示例代码:

    import xlwings as xw
    
    # 打开Excel文件
    wb1 = xw.Book('excel1.xlsx')
    wb2 = xw.Book('excel2.xlsx')
    
    # 获取Sheet对象
    sheet1 = wb1.sheets['Sheet1']
    sheet2 = wb2.sheets['Sheet2']
    
    # 将数据从excel1复制到excel2
    rng1 = sheet1.range('A1:C10')
    rng2 = sheet2.range('A1')
    rng2.options(index=False).value = rng1.value
    
    # 将图片从excel1复制到excel2
    pic1 = sheet1.pictures[0]
    pic1.api.CopyPicture()
    sheet2.paste(rng2)
    
    # 保存并关闭Excel文件
    wb2.save()
    wb2.close()
    wb1.close()
    

    在这个示例中,我们使用xlwings库打开excel1.xlsx和excel2.xlsx文件,并且获取到Sheet1和Sheet2的对象。然后,我们将数据从excel1复制到excel2,并且将图片从excel1复制到excel2。最后,保存并关闭excel2文件。

    希望这个示例能够帮助到你。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月29日