windows8.1 Excel 2013 python2.7 opencv3
Holen Sie sich Farbinformationen von Nozomi Sasakis Foto und füllen Sie es in eine Excel-Zelle.
|---sasaki_excel |---sasaki_excel.py | --- sasaki_nozomi.jpg (Bild von Nozomi Sasaki) | --- sasaki_nozomi.xlsx (Excel zum Zeichnen)
Ich habe dieses Bild verwendet.
sasaki_excel.py
# -*- coding:utf-8 -*-
import cv2
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
#Bild wird geladen
image = cv2.imread("sasaki_nozomi.jpg ")
#Excel-Datei lesen
wb = load_workbook(filename='sasaki_nozomi.xlsx')
#Nehmen Sie das aktive Blatt heraus
ws = wb.active
#Erstellen Sie eine Liste von Alphabeten mit ASCII-Code
# col_name = ['A','B',...,'Z']
col_name = [chr(i) for i in range(65,65+26)]
#Erstellen einer Liste mit Excel-Spaltennamen
i = 0
for j in xrange(26, len(image[0])):
#Alphabet-Verkettung
col_name.append(col_name[i] + col_name[j % 26])
if (j + 1) % 26 == 0:
i += 1
if len(col_name) == len(image[0]):
break
for gyo in xrange(len(image)):
for retu in xrange(len(image[gyo])):
for rgb in xrange(len(image[gyo][retu])):
#Konvertieren Sie rote, grüne und blaue Werte in hexadezimale Werte
#Hexadezimal'0x**'Extrahiert die letzten 2 Zeichen, da es in konvertiert wird
red = hex(image[gyo][retu][0])[2:4]
#Zum Beispiel'0xc'Es gibt auch eine Hexadezimalzahl, in die konvertiert wird, also verketten Sie 0
if len(red) == 1:
red = '0' + red
green = hex(image[gyo][retu][1])[2:4]
if len(green) == 1:
green = '0' + green
blue = hex(image[gyo][retu][2])[2:4]
if len(blue) == 1:
blue = '0' + blue
#Ändern Sie die Spalten- und Zeilenbreite
ws.column_dimensions[col_name[retu]].width = 0.3
ws.row_dimensions[retu].height = 1.5
#Holen Sie sich den Namen der Zelle zu füllen
cell_name = col_name[retu] + str(gyo + 1)
#Legen Sie den Zellennamen fest
cell = ws[cell_name]
#Verketten Sie Hexadezimalzahlen
color = str(blue) + str(green) + str(red)
#füllen
cell.fill = PatternFill(patternType='solid', fgColor=color)
#Excel-Datei speichern
wb.save('sasaki_nozomi.xlsx')
Ich habe das Bild nie eingefügt (lacht) ~~ Die Zellenbreite wurde manuell angepasst. ~~ [2016.5.29 Nachtrag] Die Anpassung der Zellenbreite wurde nicht manuell, sondern in das Programm integriert.
Als Anwendung dieses Programms können Sie nach Fehlern suchen, indem Sie die Zellenfarben zweier Bilder vergleichen.
[Openpyxl zum Spielen mit Excel-Dateien aus Python](http://pepper.is.sci.toho-u.ac.jp/index.php?%A5%CE%A1%BC%A5%C8%2FPython%A4%AB % A4% E9Excel% A5% D5% A5% A1% A5% A4% A5% EB% A4% F2% A4% A4% A4% B8% A4% EBopenpyxl) Ascii-Codetabelle
Klicken Sie hier für die Node.js-Version Klicken Sie hier für die Ruby-Version
Recommended Posts