python - 使用 xlwt Python Odoo 插入图像?

标签 python excel image odoo xlwt

我正在使用 Odoo 10。我正在尝试使用 xlwt 库在 Excel 工作表中插入 Logo 图像。我尝试了以下链接中的解决方案,但它对我不起作用。

Insert an image base 64 on excel using xlwt

我的代码:

from PIL import Image

img = Image.open("/my_module/static/description/logo.png")
r, g, b, a = img.split()
img = Image.merge("RGB", (r, g, b))
img.save('imagetoadd.bmp')
xlwt.insert_bitmap('imagetoadd.bmp', 0, 0)

错误: IOError:[Errno 2]没有这样的文件或目录:'/my_module/static/description/logo.png'

我已经仔细检查了我的路径和拼写是否正确,并且我已经重新启动了服务器,也进行了升级。

当我给出这样的完整路径时: /home/用户名/文件夹/custom-addons/my_module/static/description/logo.png 我收到以下错误: ValueError:需要超过 3 个值才能解压

请帮助我如何实现使用 xlwt 将图像插入 Excel 工作表。谢谢!

最佳答案

这个ValueError:需要超过3个值来解包错误可能会发生,因为img.split()返回的元组少于4个项目,而您解压为4个变量,r g b a。检查 img.split() 返回的长度并相应地分配给变量,或使用索引访问前 3 个元素,例如

image_parts = img.split()
r = image_parts[0]
g = image_parts[1]
b = image_parts[2]

更新:

from PIL import Image
import xlsxwriter
from io import BytesIO

workbook   = xlsxwriter.Workbook('filename.xlsx')
worksheet1 = workbook.add_worksheet()
img = Image.open("/home/username/folder/custom-addons/my_module/static/description/logo.png")
image_parts = img.split()
r = image_parts[0]
g = image_parts[1]
b = image_parts[2]
img = Image.merge("RGB", (r, g, b))
fo = BytesIO()
img.save(fo, format='bmp')
worksheet1.insert_image('A1', 'python.png', {'image_data': fi})
workbook.close()

好的,我在 xlwt 库的源代码中找到了所需的函数。

from PIL import Image
import xlwt
from io import BytesIO

workbook   = xlwt.Workbook()
worksheet1 = workbook.add_sheet('Test')
img = Image.open("/home/username/folder/custom-addons/my_module/static/description/logo.png")
image_parts = img.split()
r = image_parts[0]
g = image_parts[1]
b = image_parts[2]
img = Image.merge("RGB", (r, g, b))
fo = BytesIO()
img.save(fo, format='bmp')
worksheet1.insert_bitmap_data(fo.getvalue(),0,0)
workbook.save('filename.xls')
img.close()

关于python - 使用 xlwt Python Odoo 插入图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54103878/

相关文章:

python - 在 Python panda 中从两列创建数据框时出错

python - 检查对象(具有某些属性值)是否不在列表中

excel - VLOOKUP 不再适用于 Office 2007 - Excel

c# - 如何使用 EPPlus 创建 A4 纸的 Excel 文件

python - 未选择图形 openpyxl 类别

java - 将图像插入java代码编辑器

python - 加载 numpy .npy 文件 Opencv C++

python - 如何使用语义自动标记一组单词?

python - OpenCV:OCR 之前阴影图像的轮廓检测

java - 在java中使用ESC/POS在热敏点打印机中打印位图整页宽度