代码:
import sys
from untitled import Ui_MainWindow
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5 import QtGui
from openpyxl import load_workbook
from openpyxl_image_loader import SheetImageLoader
from PyQt5.QtCore import QByteArray
import io
class demo(QMainWindow,Ui_MainWindow):
def __init__(self):
super(demo, self).__init__()
self.setupUi(self)
self.initUI()
self.Test()
def initUI(self):
self.setWindowTitle('Demo')
def Test(self):
workbook = load_workbook('.xlsx') # 导入文件
sheet = workbook[workbook.sheetnames[0]] # 读取第一个sheet
image_loader = SheetImageLoader(sheet) # 读取Excel文件中所有图片
# name:表格中的位置like 'D57'
for name in image_loader._images.keys():
image = image_loader.get(name)
# 获取D57中的image 此时type(image)为PIL.PngImagePlugin.PngImageFile
# 创建一个bytesIO?
imgByteArr = io.BytesIO()
# 写入?
image.save(imgByteArr, 'PNG')
# str_data 为转化后的bytes类型
str_data = imgByteArr.getvalue()
# 读取二进制?
buf = QByteArray(str_data)
# 设置Qimage from buf
f = QtGui.QImage.fromData(buf)
self.label.setPixmap(QtGui.QPixmap(f))
if __name__ == '__main__':
app = QApplication(sys.argv)
main = demo()
main.show()
sys.exit(app.exec())