python - openpyxl 在循环中添加图像,仅添加所有图像的最后图像

标签 python openpyxl

我有一个应用程序,我可以从中获取图像并添加 .xls 文件。我正在循环中执行此操作,以便添加多个图像。但是我发现只有最后一个图像被添加到所有位置。我简化了我的代码并添加到这里,做了同样的事情。这里使用屏幕抓取,并通过暂停功能更改屏幕,以便图像会有所不同。它做同样的事情,只是将最后一个屏幕截图添加到所有位置。请让我知道我哪里出错了。请原谅我的代码,我不是程序员。

import openpyxl
import PIL
from PIL import ImageGrab
from openpyxl.drawing.image import Image

def pause():
    programPause = input("Press <enter> key")   


column_offset=10
row_offset=20
column_start=3
row_start=3

def screen_capture():
    img=ImageGrab.grab()
    img.save('test.jpg','JPEG')

wb = openpyxl.Workbook()
ws = wb.active
rowi=row_start
for x in range(1,3): 
    columnj = column_start
    for y in range(1,2):
        screen_capture()
        img1=Image('test.jpg')
        img1.anchor = ws.cell(row=rowi, column=columnj).coordinate
        ws.add_image(img1)
        columnj = columnj+column_offset
        pause()
    rowi=rowi+row_offset
wb.save('Save_test_data.xlsx')
wb.close()

最佳答案

根据您的建议我修改了代码。就这样工作了,谢谢。如果有更好的方法请告诉我

import openpyxl
import PIL
from PIL import ImageGrab
from openpyxl.drawing.image import Image
import os
def pause():
    programPause = input("Press <enter> key")   


column_offset=10
row_offset=20
column_start=3
row_start=3

def screen_capture(a,b):
    img=ImageGrab.grab()
    img.save('test'+str(a+b)+'.jpg','JPEG')

wb = openpyxl.Workbook()
ws = wb.active
rowi=row_start
for x in range(1,3): 
    columnj = column_start
    for y in range(1,2):
        screen_capture(x,y)
        img1=Image('test'+str(x+y)+'.jpg')
        img1.anchor = ws.cell(row=rowi, column=columnj).coordinate
        ws.add_image(img1)
        columnj = columnj+column_offset
        pause()
    rowi=rowi+row_offset
wb.save('Save_test_data.xlsx')
wb.close()
for x in range(1,3): 
    for y in range(1,2):
        os.remove('test'+str(x+y)+'.jpg')

关于python - openpyxl 在循环中添加图像,仅添加所有图像的最后图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59651358/

相关文章:

python - 代理模式习语

python:为什么替换不起作用?

python - openpyxl - 能够从图表中删除边框吗?

python - SQLAlchemy 中需要多少个 Base 或 MetaData 实例?

python - 如何执行多个系列的按元素求和,保留 NaN

python - 写入 xlsx 在一个单元格中创建重复行

excel - 如何在openpyxl中插入分页符

python - 将 Excel 文件流保存到 azure blob 存储

python - Pandas 数据帧中的过滤速度慢,组数为 "large"?

python - 溢出错误 : (34, 'Result too large' )