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

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

关注引用 皆我百晓生 小程序回复内容作答:
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文件。
希望这个示例能够帮助到你。