반응형
.xlsx에서 셀 색상 가져오기
저는 openpyxl을 사용하여 엑셀 파일을 읽고 있습니다.저는 "xlsx" 파일에서 셀 색상을 받고 싶습니다.색상을 구하려고 했습니다.
wb = load_workbook('Test.xlsx', data_only=True)
sh = wb[Sheet1]
sh['A1'].fill.start_color.index #Green Color
"11L"을 받는데 RGB 색상을 구해야 하는데 어떻게 해야 하나요?
시트에 내장된 컬러 인덱스를 사용한 것 같습니다.이들에 대한 매핑은 다음의 출처에 있습니다.
COLOR_INDEX = (
'00000000', '00FFFFFF', '00FF0000', '0000FF00', '000000FF', #0-4
'00FFFF00', '00FF00FF', '0000FFFF', '00000000', '00FFFFFF', #5-9
'00FF0000', '0000FF00', '000000FF', '00FFFF00', '00FF00FF', #10-14
'0000FFFF', '00800000', '00008000', '00000080', '00808000', #15-19
'00800080', '00008080', '00C0C0C0', '00808080', '009999FF', #20-24
'00993366', '00FFFFCC', '00CCFFFF', '00660066', '00FF8080', #25-29
'000066CC', '00CCCCFF', '00000080', '00FF00FF', '00FFFF00', #30-34
'0000FFFF', '00800080', '00800000', '00008080', '000000FF', #35-39
'0000CCFF', '00CCFFFF', '00CCFFCC', '00FFFF99', '0099CCFF', #40-44
'00FF99CC', '00CC99FF', '00FFCC99', '003366FF', '0033CCCC', #45-49
'0099CC00', '00FFCC00', '00FF9900', '00FF6600', '00666699', #50-54
'00969696', '00003366', '00339966', '00003300', '00333300', #55-59
'00993300', '00993366', '00333399', '00333333', 'System Foreground', 'System Background' #60-64
)
11L는 0000에 해당합니다.RGB 튜플이 녹색(0,255,0)일 FF00(16진수).
감방에서 색깔을 얻었으니,
wb = load_workbook('Test.xlsx', data_only=True)
sh = wb[Sheet1]
i=sh['A1'].fill.start_color.index #Green Color
Colors=styles.colors.COLOR_INDEX
result = str(Coloros[i])
result= "#"+result[2:]
여기에 대한 해결책이 있습니다.xlsx
파일사용openpyxl
도서관.A2
우리가 알아내야 할 색 코드가 있는 세포입니다.
import openpyxl
from openpyxl import load_workbook
excel_file = 'color_codes.xlsx'
wb = load_workbook(excel_file, data_only = True)
sh = wb['Sheet1']
color_in_hex = sh['A2'].fill.start_color.index # this gives you Hexadecimal value of the color
print ('HEX =',color_in_hex)
print('RGB =', tuple(int(color_in_hex[i:i+2], 16) for i in (0, 2, 4))) # Color in RGB
와 함께openpyxl==3.0.7
육각색은 다음을 통해 얻을 수 있습니다.
val = int(_cell.fill.start_color.index, 16)
hex_color = "%06x" % (val && 0xFFFFFF)
Summit Pokhrel의 해결책이 저에게 거의 효과가 있었습니다.마지막 줄을 다음 줄로 바꿔야 했습니다.
print('RGB =', tuple(int(color_in_hex[i:i+2], 16) for i in (2, 4, 6))) # Color in RGB
언급URL : https://stackoverflow.com/questions/32736419/get-cell-color-from-xlsx
반응형
'programing' 카테고리의 다른 글
C에서 자체 수정 코드를 작성하는 방법은? (0) | 2023.10.26 |
---|---|
data.frame 행을 N번 반복합니다. (0) | 2023.10.26 |
MariaDB 데이터베이스에서 mediumblob 값 업데이트 실패 (0) | 2023.10.26 |
MySQL: 자동 증가 열이 있는 테이블에 삽입 후 예기치 않은 SELECT 결과 (0) | 2023.10.21 |
Node.js에서 Powershell 스크립트 실행 (0) | 2023.10.21 |