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.namecell.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 stringAARRGGBB 順序(Alpha、Red、Green、Blue)で設定します。してください しないで 含める # プレフィックス。.

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企業/ブランドブルー

最初の2つの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")

4つのフラグはすべてデフォルトで False.。同じセル内で自由に組み合わせることができます。.


ステップ 5: 単色の背景塗りつぶし色を設定する

使用 cell.style.fill.set_solid_fill("AARRGGBB") 背景塗りつぶしを適用するには。色の形式はフォントカラーと同じ8桁のAARRGGBB十六進文字列です。.

塗りつぶしを完全に削除するには、次を呼び出します 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: 1 つのセルに複数のスタイルを組み合わせる

同じセル参照に対して任意の数のスタイルプロパティをチェーンできます。保存前に設定できるスタイル属性の数に制限はありません。.

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.")

よくある問題

色形式が間違っています: 使用している #RRGGBB 代わりに AARRGGBB

先頭の # (例:. "#FF0000") または6桁のRGB文字列は期待通りの色を生成しません。このプロパティは正確に 8 hex digits with no prefix: "FFFF0000". 最初の2桁はアルファチャンネルです; 使用 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().

ループ内でセルの範囲に同じフォントスタイルを適用できますか??

はい。セルのアドレスを反復処理し、各セルに同じプロパティを設定します。If you use the Font コンストラクタを使用して共有 Font オブジェクトを、各セルに with 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 フォーマットはプレーンテキストまたは構造化テキスト形式であり、スタイリング情報を含みません。.


関連リソース:

 日本語