PYTHON:使用 pandas ExcelWriter 从 .xlsx 中提取数据并使用 PIL 在图像上输出文本

PYTHON: Extracting data from .xlsx using pandas ExcelWriter and outputting as text on image using PIL

1个/ 数据:

Column A     Column B     Column C
AAA          1230         CCC    
ABA          4560         CDC
AAb          7890         CCD
...

2个/ 设置 (pandas):

import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile

df = pd.read_excel("data.xlsx", sheet_name="Sheet1")...

3个/ 格式化(例如第一行):

# no formatting for Column A > AAA

# for Column B > 1,230
print(f"{1230:,d}")

# for Column C > ccc
print("CCC".lower())

4 / 完成后,需要将数据打印在图像上。 设置(PIL):

from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
img = Image.open("input.jpg")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf", 10)
draw.text((10, 10), Column A data, (0, 0, 0), font=font)
draw.text((10, 20), Column B data, (0, 0, 0), font=font)
draw.text((20, 20), Column C data, (0, 0, 0), font=font)
img.save("output.jpg")

5个/ 成品:

^ 这是第 1 行的输出示例(如果成功),我在这里缺少什么?我怎样才能循环呢?提前致谢!

import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw

df = pd.read_excel("data.xlsx", sheet_name="Sheet1")
tuples = [tuple(r) for r in df.to_numpy().tolist()]

maxtpp = len(tuples)
count = 0

while count <= maxtpp:
    (Column A, Column B, Column C) = tuples[count]

    Column B = f"{Column B:,d}"
    Column C = Column C.lower()

    img = Image.open("input.jpg")
    draw = ImageDraw.Draw(img)
    font = ImageFont.truetype("arial.ttf", 10)
    draw.text((10, 10), Column A, (0, 0, 0), font=font)
    draw.text((10, 20), Column B, (0, 0, 0), font=font)
    draw.text((20, 20), Column C, (0, 0, 0), font=font)
    count = count + 1
    img.save("output.jpg")
    if count > maxtpp:
        break

输出说明: