首页 > 解决方案 > openpyxl 在不同操作系统中的行为不同

问题描述

我有一个使用 openpyxl 生成 xlsx 格式报告的 python 代码。它首先将模板复制到具有不同名称的新文件中,在其上填充数据,最后以不同的名称保存。模板(当然是 xlsx 格式)包含徽标,当我在 Linux 中运行代码时,我会得到预期的带有徽标的输出文件,但是当我在 Windows 中运行相同的代码时,我会得到没有徽标的输出!


import openpyxl
import re
import shutil
import os
src = r'/app1/labreport_template.xlsx'
dst = r'/app1/labreport.xlsx'
shutil.copyfile(src, dst)

my_wb=openpyxl.load_workbook("app1/labreport.xlsx")
my_sheet = my_wb.active
##all selections and formatting run here##
##End_Of_Formatting_Output##
my_wb.save("/XP_2600/Reporting_21/labreport.xlsx")
zrc = r'/app1/labreport.xlsx'
dzz = r'/app1/' + idx + '.xlsx'
shutil.copyfile(zrc, dzz)
os.remove(zrc)
print('Successfully generated the report: ' + ' ' +  dzz )

Windows 版本只有 Windows 路径,其他一切都与 Linux 版本完全相同,知道有什么问题吗?谢谢。

标签: pythonopenpyxl

解决方案


我通过添加以下内容找到了解决方法:


##Logo_Entry
logo = openpyxl.drawing.image.Image('logo.png')
logo.anchor = 'A1'
my_sheet.add_image(logo)
##Logo_End

当然它不是一个解决方案,我仍然想知道为什么 Windows 上的 openpyxl 会像这样处理文件!但我添加了解决方法,也许它可以帮助面临同样问题的人。


推荐阅读