如何在unix中将jpeg图像插入excel表

时间:2013-04-10 08:42:06

标签: python excel unix xlwt

我可以使用以下代码在python中使用insert_bitmap模块的xlwt命令插入bmp图像:

import xlwt    
from PIL import Image   
book = xlwt.Workbook()
sheet3 = book.add_sheet('diagrams') 
Image.open('violations.png').convert("RGB").save('violations.bmp')    
sheet3.insert_bitmap('violations.bmp',5,13)
book.save('simple.xls')

这是正确地将bmp图像插入到工作表中,但我担心的是bmp图像大约为3MB,我无法在没有明显质量损失的情况下压缩它。

有没有办法将jpeg图像插入到unix中的工作表中?

2 个答案:

答案 0 :(得分:7)

从查看代码看起来xlwt只支持24位位图图像。

XlsxWriter Python模块可以插入PNG图像(或JPEG或Bitmap)。这是一个例子:

from xlsxwriter.workbook import Workbook


# Create an new Excel file and add a worksheet.
workbook = Workbook('images.xlsx')
worksheet = workbook.add_worksheet()

# Widen the first column to make the text clearer.
worksheet.set_column('A:A', 30)

# Insert an image.
worksheet.write('A2', 'Insert an image in a cell:')
worksheet.insert_image('B2', 'python.png')

workbook.close()

输出:

XlsxWriter Image example

有关详细信息,请参阅relevant section of the docs

答案 1 :(得分:1)

http://xlsxwriter.readthedocs.org/en/latest/example_images.html

如果您需要在一个插页中偏移和缩放图像:

  
    

worksheet.insert_image('B5','python.png',{'x_offset':2,'y_offset':2,'x_scale':0.5,'y_scale':0.5})

  

这让我花了一秒时间才弄明白,认为这可能会让其他人节省一些时间