Excel에서 사사키 노조미를 그리기 with python
10848 단어 Windows8.1파이썬OpenCVpython2.7Excel
【환경】
windows8.1
Excel 2013
python2.7
opencv3
【개요】
사사키 노조미의 사진으로부터 색의 정보를 취득해, Excel의 셀에 칠합니다.
【폴더 구성】
|---sasaki_excel
|---sasaki_excel.py
|---sasaki_nozomi.jpg(사사키 노조미의 이미지)
|---sasaki_nozomi.xlsx (그리기용 엑셀)
여기의 이미지를 사용했습니다.
【프로그램】
sasaki_excel.py# -*- coding:utf-8 -*-
import cv2
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
# 画像読み込み
image = cv2.imread("sasaki_nozomi.jpg")
# エクセルファイル読み込み
wb = load_workbook(filename='sasaki_nozomi.xlsx')
# アクティブなシートを取り出す
ws = wb.active
# アスキーコードを使ってアルファベットのリスト作成
# col_name = ['A','B',...,'Z']
col_name = [chr(i) for i in range(65,65+26)]
# エクセルの列名リスト作成
i = 0
for j in xrange(26, len(image[0])):
# アルファベットの連結
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])):
# 赤、緑、青の値を16進数へ変換
# 16進数にすると'0x**'と変換されるため後ろ2文字を取り出す
red = hex(image[gyo][retu][0])[2:4]
# 例えば'0xc'と変換される16進数もあるため、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
# 列と行の幅を変更
ws.column_dimensions[col_name[retu]].width = 0.3
ws.row_dimensions[retu].height = 1.5
# 塗りつぶすセル名を取得
cell_name = col_name[retu] + str(gyo + 1)
# セル名をセット
cell = ws[cell_name]
# 16進数の数字を文字連結
color = str(blue) + str(green) + str(red)
# 塗りつぶし
cell.fill = PatternFill(patternType='solid', fgColor=color)
# エクセルファイル保存
wb.save('sasaki_nozomi.xlsx')
【결과】
결코 이미지를 붙여 넣은 것은 아닙니다 (웃음)
셀의 너비를 수동으로 조정했습니다.
[2016.5.29 추가]
셀 너비 조정을 수동이 아닌 프로그램에 통합했습니다.
이 프로그램의 응용 프로그램은 두 이미지에 대해 셀의 색상을 비교하여 실수를 찾을 수 있습니다.
【참고 사이트】
Python에서 Excel 파일을 괴롭히는 openpyxl
아스키 코드 표
【다른 언어판】
Node.js판은 이쪽
Ruby판은 이쪽
Reference
이 문제에 관하여(Excel에서 사사키 노조미를 그리기 with python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Nobu12/items/4e2b36bdb38434e183de
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
사사키 노조미의 사진으로부터 색의 정보를 취득해, Excel의 셀에 칠합니다.
【폴더 구성】
|---sasaki_excel
|---sasaki_excel.py
|---sasaki_nozomi.jpg(사사키 노조미의 이미지)
|---sasaki_nozomi.xlsx (그리기용 엑셀)
여기의 이미지를 사용했습니다.
【프로그램】
sasaki_excel.py# -*- coding:utf-8 -*-
import cv2
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
# 画像読み込み
image = cv2.imread("sasaki_nozomi.jpg")
# エクセルファイル読み込み
wb = load_workbook(filename='sasaki_nozomi.xlsx')
# アクティブなシートを取り出す
ws = wb.active
# アスキーコードを使ってアルファベットのリスト作成
# col_name = ['A','B',...,'Z']
col_name = [chr(i) for i in range(65,65+26)]
# エクセルの列名リスト作成
i = 0
for j in xrange(26, len(image[0])):
# アルファベットの連結
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])):
# 赤、緑、青の値を16進数へ変換
# 16進数にすると'0x**'と変換されるため後ろ2文字を取り出す
red = hex(image[gyo][retu][0])[2:4]
# 例えば'0xc'と変換される16進数もあるため、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
# 列と行の幅を変更
ws.column_dimensions[col_name[retu]].width = 0.3
ws.row_dimensions[retu].height = 1.5
# 塗りつぶすセル名を取得
cell_name = col_name[retu] + str(gyo + 1)
# セル名をセット
cell = ws[cell_name]
# 16進数の数字を文字連結
color = str(blue) + str(green) + str(red)
# 塗りつぶし
cell.fill = PatternFill(patternType='solid', fgColor=color)
# エクセルファイル保存
wb.save('sasaki_nozomi.xlsx')
【결과】
결코 이미지를 붙여 넣은 것은 아닙니다 (웃음)
셀의 너비를 수동으로 조정했습니다.
[2016.5.29 추가]
셀 너비 조정을 수동이 아닌 프로그램에 통합했습니다.
이 프로그램의 응용 프로그램은 두 이미지에 대해 셀의 색상을 비교하여 실수를 찾을 수 있습니다.
【참고 사이트】
Python에서 Excel 파일을 괴롭히는 openpyxl
아스키 코드 표
【다른 언어판】
Node.js판은 이쪽
Ruby판은 이쪽
Reference
이 문제에 관하여(Excel에서 사사키 노조미를 그리기 with python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Nobu12/items/4e2b36bdb38434e183de
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sasaki_excel.py
# -*- coding:utf-8 -*-
import cv2
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
# 画像読み込み
image = cv2.imread("sasaki_nozomi.jpg")
# エクセルファイル読み込み
wb = load_workbook(filename='sasaki_nozomi.xlsx')
# アクティブなシートを取り出す
ws = wb.active
# アスキーコードを使ってアルファベットのリスト作成
# col_name = ['A','B',...,'Z']
col_name = [chr(i) for i in range(65,65+26)]
# エクセルの列名リスト作成
i = 0
for j in xrange(26, len(image[0])):
# アルファベットの連結
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])):
# 赤、緑、青の値を16進数へ変換
# 16進数にすると'0x**'と変換されるため後ろ2文字を取り出す
red = hex(image[gyo][retu][0])[2:4]
# 例えば'0xc'と変換される16進数もあるため、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
# 列と行の幅を変更
ws.column_dimensions[col_name[retu]].width = 0.3
ws.row_dimensions[retu].height = 1.5
# 塗りつぶすセル名を取得
cell_name = col_name[retu] + str(gyo + 1)
# セル名をセット
cell = ws[cell_name]
# 16進数の数字を文字連結
color = str(blue) + str(green) + str(red)
# 塗りつぶし
cell.fill = PatternFill(patternType='solid', fgColor=color)
# エクセルファイル保存
wb.save('sasaki_nozomi.xlsx')
【결과】
결코 이미지를 붙여 넣은 것은 아닙니다 (웃음)
셀의 너비를 수동으로 조정했습니다.
[2016.5.29 추가]
셀 너비 조정을 수동이 아닌 프로그램에 통합했습니다.
이 프로그램의 응용 프로그램은 두 이미지에 대해 셀의 색상을 비교하여 실수를 찾을 수 있습니다.
【참고 사이트】
Python에서 Excel 파일을 괴롭히는 openpyxl
아스키 코드 표
【다른 언어판】
Node.js판은 이쪽
Ruby판은 이쪽
Reference
이 문제에 관하여(Excel에서 사사키 노조미를 그리기 with python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Nobu12/items/4e2b36bdb38434e183de
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Python에서 Excel 파일을 괴롭히는 openpyxl
아스키 코드 표
【다른 언어판】
Node.js판은 이쪽
Ruby판은 이쪽
Reference
이 문제에 관하여(Excel에서 사사키 노조미를 그리기 with python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Nobu12/items/4e2b36bdb38434e183de
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Excel에서 사사키 노조미를 그리기 with python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Nobu12/items/4e2b36bdb38434e183de텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)