2013-04-10 1 views
3

Я могу вставить BMP изображений с помощью insert_bitmap команду xlwt модуля в Python, используя следующий код:как вставить изображение JPEG в Excel лист в UNIX

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 составляет около 3 МБ, и я не могу сжать его без существенной потери качества.

Есть ли способ вставить jpeg-изображения в рабочий лист в unix?

+0

Вы пробовали передать изображение .jpg на 'insert_bitmap()'? Это может сработать, потому что «растровое изображение» является общим термином для файлов изображений в целом и не просто применяет файлы, хранящиеся в файлах формата .bmp. – martineau

+0

Я пробовал передавать изображение .jpg, и оно не работает. –

ответ

7

От взгляда на код он похож, что xlwt поддерживает только 24-битные растровые изображения.

XlsxWriter Модуль Python может вставлять PNG-изображения (или JPEG или растровые изображения). Вот пример:

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 для получения дополнительной информации.

+0

xlsxwriter отлично смотрится, но, к сожалению, он не установлен в моей системе unix, и мне не разрешено ничего устанавливать. так что по-прежнему ищу любые другие варианты –

+0

похоже, что вы только разработали этот модуль, отличный рабочий человек –

+1

@sidharthcnadhan: Поскольку пакет является чистым Python (нет двоичных файлов, нет расширений C для компиляции и т. д.), это технически не обязательно "установлен". Он может просто жить в том же каталоге, что и программа, которую вы пишете. –

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})

это взял меня второй, чтобы выяснить, подумал я t может сэкономить еще некоторое время

 Смежные вопросы

  • Нет связанных вопросов^_^