Найти - Пользователи
Полная версия: Вставление картинки в excel
Начало » Python для новичков » Вставление картинки в excel
1 2
omon3
Есть библиотека openpyxl, есть python 3.. есть xlsx файл.
Нужно вставить определенным образом картинку (которая в свою очередь генерируется с помощью библиотеки qr кодов)
Я нашел описание работы openpyxl с картинками ссылка но питон отказывается вставлять ссылаясь anchor . В чем проблема как решить?

import qrcode
import openpyxl
wb = openpyxl.load_workbook(filename = 'C:/python/python program/qr code/qr.xlsx')
ws = wb.worksheets[1]
img1 = qrcode.make('1111')#генерация картинки (можно убрать)
img1.show()
img1.save("C:/python/python program/qr code/qr1/11.png")
img1.anchor(ws['D12'])
(('D', 12), ('D', 21))
wb.save('C:/python/python program/qr code/qr.xlsx')


Вот ошибки:
Traceback (most recent call last):
File “Cpython/python program/qr code/qr1/qr1.py”, line 9, in <module>
img1.anchor(ws)
File “C:\Python34\lib\site-packages\qrcode-5.1-py3.4.egg\qrcode\image\pil.py”, line 35, in __getattr__
File “C:\Python34\lib\site-packages\PIL\Image.py”, line 626, in __getattr__
raise AttributeError(name)
AttributeError: anchor
sander
omon3
потому для openpyxl
from openpyxl.drawing import Image
а qrcode использует Image из Pillow
4kpt_III
Заюзайте уже XlsxWriter. Он и проще и таких проблем нет…
omon3
sander
omon3потому для openpyxl
и что делать тогда?, как тогда просто картинку вставить из какой-нибудь директории?
4kpt_III
Вам же написали.
1. Сохраните картинку с QR.
2. Откройте картинку используя модуль Image в openpyxl.
3. Проделайте все операции с бедным изображением и запихните мученика в workbook.

from openpyxl.drawing import Image
#
img = Image('path_to_saved_image')
omon3
4kpt_III
Вам же написали.1. Сохраните картинку с QR.2. Откройте картинку используя модуль Image в openpyxl.3. Проделайте все операции с бедным изображением и запихните мученика в workbook.
Я пытаюсь запихнуть но все никак - почему то все компилируется успешно, но изменений в excel не наблюдается. Нет никакой картинки внутри…

import qrcode
import openpyxl
from openpyxl.drawing import Image
wb = openpyxl.load_workbook(filename = 'C:/python/python program/qr code/qr.xlsx')
ws = wb.worksheets[1]
img1 = qrcode.make('1111')#генерация картинки (можно убрать)
img1.save("C:/python/python program/qr code/11.png")
img = Image('C:/python/python program/qr code/11.png')
ws.add_image(img)
print(img1)
print(img)
img.anchor(ws['D12'])
wb.save('C:/python/python program/qr code/qr.xlsx')
4kpt_III
А картинка создается в нужной папке?
doza_and
omon3
почему то все компилируется успешно
:) Если оно у вас компилируется, то точно работать не будет.
Какой новый traceback? Как по вашему мнению мы должны угадывать что у вас не так?
omon3
4kpt_III
А картинка создается в нужной папке?
Я нашел проблему - Оказывается для этого всего нужно почему-то такая строчка:
ws = wb.active
omon3
С новой столкнулся проблемой - картинки постепенно съезжают. Тоесть прописываю четко формулу вставления картинок и каждая последующая немного съезжает вниз(в итоге на 100й разница в 10 или 20 строк). На сайте библиотеки поменяли описание работы с картинками и другие способы вставления удалили openpyxl.
Не могу понять закономерности из-за чего все едет. Главный вопрос - это КАК сделать так чтобы картинка 100% вставлялась туда куда указано со 100% точностью
Вот кусок кода:
 D=5+i*30
    print(D)
    img.anchor(ws.cell(row=D, column=1))
    ws.add_image(img)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB