使用 python 复制图像时,excel 文档中的图像消失

Ya *_*boy 7 excel python-3.x

import openpyxl

def factuur():
    wb = openpyxl.load_workbook('factuurvoorbeeld1.xlsx')
    Blad1 = wb.active
    Blad1['K7'] = 'logo.png'
    Blad1['E22'] = factuurNr.get()
    Blad1['E23'] = datum.get()
    Blad1['E24'] = debNr.get()
    Blad1['E25'] = locatie.get()
    wb.save('{}.xlsx'.format(factuurNr.get() + ',' + debNr.get()))
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个应用程序,该应用程序使用简单的 GUI 和输入字段自动填充 Excel 文档。问题是,每次 python 复制基本 Excel 文件(每个文档中包含个人信息和一张图像的文件)时,图像就会消失。你们中的任何人都知道该怎么做吗?我正在使用 Python 3.5。

我尝试过的事情:1)多个 Excel 模块 2)关于在 excel 中编写代码的一些事情(但不确定我是否正确地做到了这一点)

抱歉我的描述太糟糕了,我真的不知道如何描述这种东西。如果您想了解更多,请在评论中留下问题,我会尽可能经常查看。

Blad1 = Excel 文档的第一张表。

Raj*_*rma 20

我在使用openpyxl 2.6.2 时遇到同样的问题

徽标图像已添加到模板 excel 文件中,但在导出的 .xlsx 文件中消失

我只是安装Pillow,现在它可以正常导出所有图像。

pip install Pillow
Run Code Online (Sandbox Code Playgroud)

这是我从模板 excel 文件创建工资单的示例代码:

from openpyxl import load_workbook


def create_salary_slip():
    wb = load_workbook(filename = 'salary.xlsx')
    # grab the active worksheet
    ws = wb.active
    # Add Income
    ws['D11'] = 25000
    # Add deduction
    ws['M11'] = 1500
    # Save the file
    wb.save("sample.xlsx")

create_salary_slip()
Run Code Online (Sandbox Code Playgroud)

  • 多谢。当“Pillow”丢失并且您正在保存包含图像的工作簿时,“openpyxl”肯定应该显示警告消息 (2认同)

Ste*_*fan 6

我遇到了同样的问题并尝试了很多库。对我来说,editpyxl正是我在这种情况下所需要的:

import editpyxl

wb = editpyxl.Workbook()  
source_filename = r'Template.xlsx'
destination_filename = 'Output.xlsx'

wb.open(source_filename)
ws = wb.active
ws.cell('A1').value = 3.14
wb.save(destination_filename)
wb.close()
Run Code Online (Sandbox Code Playgroud)


Gui*_*ume 1

不幸的是openpyxl目前不支持图像,请参阅官方文档: https://openpyxl.readthedocs.io/en/default/usage.html

openpyxl 目前无法读取 Excel 文件中的所有可能项目,因此如果使用相同名称打开并保存现有文件中的图像和图表,则会丢失这些图像和图表。

因此,当您打开模板文件时,不会读取图像,因此不会保存在新文件中。

如果您按照此处的文档再次使用 openpyxl 插入图像,它可能会起作用:https ://openpyxl.readthedocs.io/en/default/usage.html#inserting-an-image

  • 我猜这个答案已被弃用:) (2认同)