Вставьте растровое изображение в файл Excel (xlwt) в GAE - PullRequest
1 голос
/ 05 января 2012

Мне нужно вставить растровое изображение в файл Excel (создание с использованием xlwt).я пытался вставить, используя метод insert_bimap (), но он возвращает ошибку ввода-вывода.

ошибка:

Traceback (most recent call last):  
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 701, in __call__    
   handler.get(*groups)  
File "C:\apps\test.py", line 44, in get
ws0.insert_bitmap('images/logo.gif', 2, 2)
File "C:\apps\xlwt\Worksheet.py", line 1034, in insert_bitmap
bmp = Bitmap.ImDataBmpRecord(filename)
File "C:\apps\xlwt\Bitmap.py", line 255, in __init__
self.width, self.height, self.size, data = _process_bitmap(filename)
File "C:\apps\xlwt\Bitmap.py", line 195, in _process_bitmap
fh = file(bitmap, "rb")
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 578, in __init__
raise IOError(errno.EACCES, 'file not accessible', filename)
IOError: [Errno 13] file not accessible: 'images/logo.gif'

код:

  class MainHandler(webapp.RequestHandler):        
     def get(self):
        wb = Workbook()
        ws0 = wb.add_sheet('Sheet 1')
        ws0.write(0, 2, "chg wid: none")
        ws0.insert_bitmap('images/logo.gif', 2, 2)

        self.response.headers['Content-Type'] = 'application/ms-excel'
        self.response.headers['Content-Transfer-Encoding'] = 'Binary'
        self.response.headers['Content-disposition'] = 'attachment; filename="Sample.xls"'
        wb.save(self.response.out)

Пожалуйста, дайте мне знать, если есть обходной путьза это?

ура!
NN

Ответы [ 2 ]

3 голосов
/ 05 декабря 2014

Я уверен, что этот проект давно завершен, но посмотрите xlsxwriter

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

Гораздо лучше вставлять изображения, чем xlwt, поддерживает jpegs и png файлы, а не только bmp

, если вам нужно сместить и масштабировать изображение за одну вставку:

worksheet.insert_image ('B5', '/python/reports/garmentspreadsheet/Images/Garments/6702RD-WH.jpg', {'x_offset': 2, 'y_offset': 2, 'x_scale': 0.5, ' y_scale ': 0,5})

смещения в пикселях

Нет xlsxwriter

  • pip install xlsxwriter

нет пипса? это как easy_install

  • CentOS / RedHat

    yum install python-pip или же ням установить пункт

  • debian

    apt-get install pip

3 голосов
/ 29 марта 2012

Кажется, что insert_bitmap() работает только с форматом bmp. Откройте файл gif, сохраните копию в формате bmp и назовите ее с insert_bitmap('images/logo.bmp',2,2), она будет работать.

...