имя 'openpyxl' не определено ошибка - PullRequest
0 голосов
/ 03 мая 2018

Все еще изучаем все тонкости Python здесь. У меня был небольшой успех с использованием библиотеки openpyxl, и я начал этот любимый проект с использованием файла Excel в качестве «холста» для чтения 1-битного bmp-файла из каталога, а затем для «дублирования-отображения» изображения на листе, избавившись от руководствуясь уменьшением размеров каждой ячейки и, наконец, добавлением небольшого изображения в каждую ячейку со списком двоичных данных из метода getdata из подушки.

Я не прошел всю логику, но у меня проблемы с приведенным ниже кодом в течение двух ночей, и я до сих пор не понимаю, почему я получаю имя «openpyxl», ошибка не определена в строке почти внизу кода sheet.add_image(openpyxl.drawing.image.Image('square_blue.jpg'), colnum_string(col)+str(row)) Я добился успеха в аналогичном проекте, использующем почти идентичный импорт библиотек openpyxl и PIL.

from openpyxl import Workbook
import os
from PIL import Image
# for file in os.listdir():
#   if file.endswith('bmp'):
os.chdir('c:/users/Sam/Desktop/py')
img = Image.open('trump.bmp')

img_width, img_height = img.size
pix_val = list(img.getdata())

wb = Workbook()

def colnum_string(n):
    string = ""
    while n > 0:
        n, remainder = divmod(n - 1, 26)
        string = chr(65 + remainder) + string
    return string

r_height = 3
c_width = 3

sheet = wb.create_sheet("Mysheet")
for col in range(1, img_height):
    sheet.row_dimensions[img_height].height = r_height
    for row in range(1, img_width):
        sheet.column_dimensions[colnum_string(col)] = c_width

        sheet.add_image(openpyxl.drawing.image.Image('square_blue.jpg'), colnum_string(col)+str(row))

wb.save('out.xlsx')

Кто-нибудь может мне помочь, пожалуйста?

1 Ответ

0 голосов
/ 03 мая 2018

Вы импортируете субмодуль '' Workbook '' только из openpyxel. Попробуйте:

from openpyxel import Workbook, drawing  # also import drawing namespace
[...]
sheet.add_image(drawing.image.Image('square_blue.jpg'), colnum_string(col)+str(row))
[...]
...