Python에서 Aspose.Cells FOSS를 사용하여 셀 스타일링하는 방법

Python에서 Aspose.Cells FOSS를 사용하여 셀 스타일링하는 방법

Aspose.Cells FOSS for Python 개별 셀에 글꼴 스타일과 배경 채우기를 적용할 수 있게 해줍니다 cell.style.fontcell.style.fill API. 색상은 다음과 같이 표현됩니다 8-digit AARRGGBB hex strings; 예를 들어 "FFFF0000" 불투명 빨간색을 나타내며, 접두사가 없습니다 # 접두사. 모든 스타일링은 순수 Python에서 수행되며 Microsoft Excel이나 외부 렌더링 라이브러리에 의존하지 않습니다.

Aspose.Cells FOSS로 셀을 스타일링하는 이유는?

  1. Excel이 필요 없습니다: 포맷팅은 모든 OS에서 Python만으로 완전히 실행됩니다.
  2. 일관된 색상 모델: 단일 8자리 AARRGGBB 문자열이 글꼴 색상과 채우기 색상을 동일한 형식으로 포함합니다.
  3. 읽기 쉬운 속성 이름: bold, italic, underline, strikethrough: 없음 is_ 기억할 접두사.
  4. 재사용 가능한 글꼴 객체: 만들기 Font 인스턴스를 한 번 만들고 여러 셀에 적용하여 일관된 브랜딩을 구현합니다.

단계별 가이드

단계 1: Python용 Aspose.Cells FOSS 설치

pip install aspose-cells-foss

추가 시스템 패키지는 필요하지 않습니다. 필요한 클래스를 다음에서 가져오세요 aspose.cells_foss:

from aspose.cells_foss import Workbook, Cell, Font, SaveFormat

단계 2: 글꼴 이름 및 크기 설정

셀에 접근하려면 ws.cells["address"] 그리고 쓰기 cell.style.font.name 그리고 cell.style.font.size.

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"].value = "Styled Header"

cell = ws.cells["A1"]
cell.style.font.name = "Arial"
cell.style.font.size = 14

workbook.save("styled.xlsx")

기본 글꼴은 Calibri 11pt. 파일이 열리는 시스템에 설치된 모든 글꼴 이름을 사용할 수 있습니다; 설치되지 않은 글꼴을 지정해도 오류가 발생하지 않지만 파일을 열 때 대체 글꼴로 표시될 수 있습니다.


단계 3: AARRGGBB 16진수 문자열을 사용하여 글꼴 색상 설정

글꼴 색상은 8-digit hexadecimal string 에서 AARRGGBB 순서(Alpha, Red, Green, Blue)로 설정합니다. 수행 아니 a를 포함 # 접두사.

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"].value = "Red text"
ws.cells["A1"].style.font.color = "FFFF0000"   # opaque red

ws.cells["A2"].value = "Blue text"
ws.cells["A2"].style.font.color = "FF0000FF"   # opaque blue

ws.cells["A3"].value = "Green text"
ws.cells["A3"].style.font.color = "FF00FF00"   # opaque green

workbook.save("colored_text.xlsx")

일반적인 AARRGGBB 색상 참조:

색상AARRGGBB 문자열노트
검정FF000000기본 글꼴 색상
흰색FFFFFFFF어두운 배경에 사용
빨강FFFF0000경고 또는 강조 텍스트
파랑FF0000FF링크 또는 강조
녹색FF00FF00양수 값 또는 성공
주황색FFFF8000경고 텍스트
회색FF808080차분하거나 비활성화된 텍스트
네이비FF1E64C8기업/브랜드 파란색

첫 번째 두 개의 16진수 자리수는 알파 채널을 나타냅니다. 사용 FF 완전 불투명하게 하려면. 아래 값은 FF 알파 블렌딩을 지원하는 렌더러에서 반투명 결과를 생성합니다.


단계 4: 굵게, 기울임, 밑줄 및 취소선 적용

각 속성을 부울 값으로 직접 설정합니다. 속성 이름은 bold, italic, underline, 그리고 strikethrough; 수행 아니오 사용 is_bold 또는 is_italic (해당 이름은 FOSS API에 존재하지 않으며 오류를 발생시킵니다 AttributeError).

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"].value = "Bold"
ws.cells["A1"].style.font.bold = True

ws.cells["A2"].value = "Italic"
ws.cells["A2"].style.font.italic = True

ws.cells["A3"].value = "Underline"
ws.cells["A3"].style.font.underline = True

ws.cells["A4"].value = "Strikethrough"
ws.cells["A4"].style.font.strikethrough = True

ws.cells["A5"].value = "Bold + Italic"
ws.cells["A5"].style.font.bold = True
ws.cells["A5"].style.font.italic = True

workbook.save("font_styles.xlsx")

모든 네 플래그는 기본값이 False. 동일한 셀에서 자유롭게 결합할 수 있습니다.


단계 5: 단색 배경 채우기 색상 설정

사용 cell.style.fill.set_solid_fill("AARRGGBB") 배경 채우기를 적용합니다. 색상 형식은 글꼴 색상과 동일한 8자리 AARRGGBB 16진수 문자열입니다.

채우기를 완전히 제거하려면, 호출합니다 cell.style.fill.set_no_fill().

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"].value = "Navy background"
ws.cells["A1"].style.fill.set_solid_fill("FF1E64C8")   # opaque navy blue

ws.cells["A2"].value = "Light yellow background"
ws.cells["A2"].style.fill.set_solid_fill("FFFFFFCC")   # pale yellow

ws.cells["A3"].value = "No fill"
ws.cells["A3"].style.fill.set_no_fill()                 # remove any fill

workbook.save("cell_fills.xlsx")

set_solid_fill()set_no_fill() 서로 배타적이며; 하나를 호출하면 동일한 셀에서 다른 것을 덮어씁니다.


단계 6: 하나의 셀에 여러 스타일 결합

동일한 셀 참조에 원하는 만큼의 스타일 속성을 체인처럼 연결할 수 있습니다. 저장하기 전에 설정할 수 있는 스타일 속성 수에 제한이 없습니다.

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["B2"].value = "Branded Header"

cell = ws.cells["B2"]

##Font
cell.style.font.name  = "Arial"
cell.style.font.size  = 16
cell.style.font.bold  = True
cell.style.font.color = "FFFFFFFF"      # white text

##Background
cell.style.fill.set_solid_fill("FF1E64C8")   # navy fill

workbook.save("branded_header.xlsx")
print("Branded header cell saved.")

이는 흰색, 굵게, 16pt Arial 레이블이 네이비 배경에 표시되는 결과를 만들며, 열 머리글에 흔히 사용되는 패턴입니다.


단계 7: 재사용 가능한 스타일을 위한 Font 생성자 사용

Font 클래스는 한 번의 호출로 모든 속성을 설정하여 인스턴스화할 수 있으며, 이후 여러 셀에 할당할 수 있습니다. 이는 동일한 하우스 스타일을 여러 셀에 적용하고 동일한 속성 할당을 반복하지 않으려는 경우에 유용합니다.

from aspose.cells_foss import Workbook, Font

workbook = Workbook()
ws = workbook.worksheets[0]

##Define a reusable heading font
heading_font = Font(
    name="Arial",
    size=14,
    color="FF1E64C8",   # navy
    bold=True,
    italic=False,
    underline=False,
    strikethrough=False
)

##Define a reusable body font
body_font = Font(
    name="Calibri",
    size=11,
    color="FF000000",   # black (default)
    bold=False,
    italic=False,
    underline=False,
    strikethrough=False
)

##Apply heading font to header row
headers = ["Product", "SKU", "Price", "Stock"]
for col, header in enumerate(headers):
    addr = f"{chr(65 + col)}1"
    ws.cells[addr].value = header
    ws.cells[addr].style.font = heading_font
    ws.cells[addr].style.fill.set_solid_fill("FFE8EFF9")  # light blue tint

##Apply body font to data rows
data = [
    ("Widget A", "WGT-001", 9.99,  150),
    ("Widget B", "WGT-002", 14.99, 87),
    ("Widget C", "WGT-003", 4.49,  320),
]

for row_idx, (name, sku, price, stock) in enumerate(data, start=2):
    ws.cells[f"A{row_idx}"].value = name
    ws.cells[f"B{row_idx}"].value = sku
    ws.cells[f"C{row_idx}"].value = price
    ws.cells[f"D{row_idx}"].value = stock
    for col in "ABCD":
        ws.cells[f"{col}{row_idx}"].style.font = body_font

workbook.save("product_table.xlsx")
print("Product table with reusable fonts saved.")

Font 생성자 기본값 (모든 매개변수는 선택 사항입니다):

매개변수기본값
name"Calibri"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

완전한 작동 예제

다음의 독립 실행형 스크립트는 스타일이 적용된 헤더 행, 색상이 지정된 데이터 행, 그리고 위에서 다룬 모든 스타일링 API를 시연하는 요약 셀을 포함하는 워크북을 생성합니다:

from aspose.cells_foss import Workbook, Cell, Font, SaveFormat

workbook = Workbook()
ws = workbook.worksheets[0]
ws.name = "Sales Report"

##--- Header row (bold, white text on navy background) ---
headers = ["Region", "Q1", "Q2", "Q3", "Q4", "Total"]
for col, text in enumerate(headers):
    addr = f"{chr(65 + col)}1"
    ws.cells[addr].value = text
    ws.cells[addr].style.font.name  = "Arial"
    ws.cells[addr].style.font.size  = 12
    ws.cells[addr].style.font.bold  = True
    ws.cells[addr].style.font.color = "FFFFFFFF"            # white
    ws.cells[addr].style.fill.set_solid_fill("FF1E64C8")    # navy

##--- Data rows ---
data = [
    ("North", 42000, 47500, 53000, 61000),
    ("South", 31000, 28500, 35000, 39000),
    ("East",  55000, 62000, 58000, 71000),
    ("West",  27000, 30000, 33000, 41000),
]

for row_idx, (region, q1, q2, q3, q4) in enumerate(data, start=2):
    ws.cells[f"A{row_idx}"].value = region
    ws.cells[f"B{row_idx}"].value = q1
    ws.cells[f"C{row_idx}"].value = q2
    ws.cells[f"D{row_idx}"].value = q3
    ws.cells[f"E{row_idx}"].value = q4
    # Total formula
    ws.cells[f"F{row_idx}"] = Cell(None, f"=SUM(B{row_idx}:E{row_idx})")
    # Alternate row shading
    if row_idx % 2 == 0:
        for col in "ABCDEF":
            ws.cells[f"{col}{row_idx}"].style.fill.set_solid_fill("FFE8EFF9")

##--- Italic note in a footer cell ---
ws.cells["A7"].value = "All values in USD"
ws.cells["A7"].style.font.italic = True
ws.cells["A7"].style.font.color  = "FF808080"   # gray
ws.cells["A7"].style.font.size   = 9

##--- Strikethrough on a deprecated label ---
ws.cells["A8"].value = "Old metric (deprecated)"
ws.cells["A8"].style.font.strikethrough = True
ws.cells["A8"].style.font.color         = "FF808080"

workbook.save("sales_report_styled.xlsx", SaveFormat.XLSX)
print("Styled sales report saved.")

Common Issues

잘못된 색상 형식: 사용 중 #RRGGBB 대신에 AARRGGBB

앞에 오는 # (예를 들어. "#FF0000") 8 hex digits with no prefix: "FFFF0000".또는 6자리 RGB 문자열은 예상 색상을 만들지 못합니다. 해당 속성은 정확히 FF . 첫 두 자리 숫자는 알파 채널을 나타냅니다; 완전 불투명하게 사용하려면.

AttributeError: 'Font' object has no attribute 'is_bold'

FOSS API는 사용합니다 bold, italic, underline, 및 strikethrough 을(를) 속성 이름으로 사용합니다. 그 is_bold / is_italic 명명 규칙은 다른 라이브러리에 속하며 여기에는 존재하지 않습니다. 모든 is_bold 참조를 bold.

저장 후 스타일 변경이 보이지 않음

셀 객체에 스타일 속성을 설정했는지 확인하십시오 이전에 호출하기 workbook.save(). 저장 호출 후 셀에 속성을 설정해도 이미 기록된 파일에는 영향을 주지 않습니다. 하나의 cell 변수는 올바른 셀 주소를 여전히 가리키는지 확인하십시오.

같은 셀에 채우기와 글꼴을 동시에 적용하면 시각적으로 충돌합니다

API 충돌이 없습니다; 언제든지 두 가지를 모두 설정할 수 있습니다 cell.style.font.colorcell.style.fill.set_solid_fill() 독립적으로 설정할 수 있습니다. 텍스트 색상이 배경 색상과 충분한 대비를 이루는지 확인하십시오. 흰색 텍스트 (FFFFFFFF) 네이비와 같은 어두운 채우기 위에 (FF1E64C8) 신뢰할 수 있는 조합입니다.


자주 묻는 질문

배경 채우기를 제거하고 셀을 채우기 없음 상태로 되돌리려면 어떻게 해야 하나요?

호출 cell.style.fill.set_no_fill(). 이것은 셀에 이전에 설정된 단색 채우기를 제거합니다.

셀을 기본 글꼴(Calibri 11pt 검정)로 재설정하려면 어떻게 해야 하나요?

기본값을 명시적으로 다시 할당하세요:

cell.style.font.name          = "Calibri"
cell.style.font.size          = 11
cell.style.font.color         = "FF000000"
cell.style.font.bold          = False
cell.style.font.italic        = False
cell.style.font.underline     = False
cell.style.font.strikethrough = False

또는, 다음을 생성합니다 Font() 인스턴스를 인수 없이(모두 기본값) 생성하고 할당합니다: cell.style.font = Font().

루프에서 셀 범위에 동일한 글꼴 스타일을 적용할 수 있나요?

예. 셀 주소를 반복하고 각 셀에 동일한 속성을 설정합니다. 만약 당신이 사용하는 경우 Font 생성자를 사용하여 공유 Font 객체를 각 셀에 다음을 사용하여 할당합니다 ws.cells[addr].style.font = my_font.

스타일링이 셀 값이나 수식에 영향을 줍니까?

아니오. 스타일링은 순수히 시각적 메타데이터입니다. cell.style.font 그리고 cell.style.fill 건드리지 마세요 .value 또는 .formula.

어떤 저장 형식이 스타일을 보존합니까?

스타일은 저장할 때 완전히 보존됩니다 SaveFormat.XLSX. 그 SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, 그리고 SaveFormat.MARKDOWN 포맷은 일반 텍스트 또는 구조화된 텍스트 포맷이며 스타일 정보를 포함하지 않습니다.


관련 자료:

 한국어