チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»xls python data

Displaying items by tag: xls python data

Excel において、フォントはデータの視認性や見た目を向上させる重要な要素です。スプレッドシートの作成、レポートの設計、情報の整理など、フォントを適切に設定・変更することで、全体の印象が大きく変わります。Excel では豊富なフォントオプションが用意されており、スタイルやサイズ、装飾などを自由にカスタマイズできます。

本記事では、Spire.XLS for Python を使用して Excel セルのフォントを設定・変更する方法 をご紹介します。

Spire.XLS for Python のインストール

この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.XLS

Python で異なるセルに異なるフォントを設定する

Spire.XLS for Python を使用すると、特定のセルに対してフォントを簡単にカスタマイズできます。CellRange.Style.Font プロパティを利用することで、フォント名・色・サイズ・スタイルを柔軟に設定できます。以下の手順で、特定のセルにフォントスタイルを適用する方法を確認しましょう。

  • Workbook オブジェクトを作成します。
  • Workbook.Worksheets[index] プロパティで対象のワークシートを取得します。
  • Worksheet.Range[int Row, int Column] プロパティで特定のセルを取得します。
  • CellRange.Value プロパティでセルの値を設定します。
  • CellRange.Style.Font オブジェクトの各プロパティを使用して、フォントの名前・色・サイズ・スタイルを設定します。
  • Workbook.SaveToFile() メソッドで Excel ファイルとして保存します。
from spire.xls import *
from spire.xls.common import *

# Workbook オブジェクトを作成
workbook = Workbook()

# 最初のワークシートを取得
sheet = workbook.Worksheets

# フォント名を設定
row = 1
sheet.Range[row, 1].Value = "フォント名"
sheet.Range[row, 2].Value = "Yu Gothic UI"
sheet.Range[row, 2].Style.Font.FontName = "Yu Gothic UI"

# フォントサイズを設定
row += 2
sheet.Range[row, 1].Value = "フォントサイズ"
sheet.Range[row, 2].Value = "15"
sheet.Range[row, 2].Style.Font.Size = 15

# フォントの色を設定
row += 2
sheet.Range[row, 1].Value = "フォントカラー"
sheet.Range[row, 2].Value = "赤"
sheet.Range[row, 2].Style.Font.Color = Color.get_Red()

# 太字にする
row += 2
sheet.Range[row, 1].Value = "太字"
sheet.Range[row, 2].Value = "太字"
sheet.Range[row, 2].Style.Font.IsBold = True

# 斜体にする
row += 2
sheet.Range[row, 1].Value = "斜体"
sheet.Range[row, 2].Value = "斜体"
sheet.Range[row, 2].Style.Font.IsItalic = True

# 下線を引く
row += 2
sheet.Range[row, 1].Value = "下線"
sheet.Range[row, 2].Value = "下線"
sheet.Range[row, 2].Style.Font.Underline = FontUnderlineType.Single

# 取り消し線を引く
row += 2
sheet.Range[row, 1].Value = "取り消し線"
sheet.Range[row, 2].Value = "取り消し線"
sheet.Range[row, 2].Style.Font.IsStrikethrough = True

# 列幅を設定
sheet.Columns.ColumnWidth = 25
sheet.Columns.ColumnWidth = 25

# Excel ファイルとしてブックを保存
workbook.SaveToFile("output/Excelのセルにフォントを適用.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

PythonでExcelワークシートのセルにフォントを適用する

Python で 1 つのセルに複数のフォントを適用する

セル内の特定の文字だけを強調したい場合には、1 つのセルに複数のフォントを適用することができます。Spire.XLS for Python を使用して、次の手順で実現できます。

  • Workbook オブジェクトを作成します。
  • Workbook.Worksheets[index] プロパティで対象のワークシートを取得します。
  • Workbook.CreateFont() メソッドで 2 つの ExcelFont オブジェクトを作成します。
  • Worksheet.Range[int Row, int Column] プロパティでセルを取得し、CellRange.RichText.Text プロパティでリッチテキストを設定します。
  • RichText.SetFont() メソッドを使用して、それぞれのフォントを文字列の特定部分に適用します。
  • Workbook.SaveToFile() メソッドで Excel ファイルとして保存します。
from spire.xls import *
from spire.xls.common import *

# Workbookオブジェクトを作成します
workbook = Workbook()

# 最初のワークシートを取得します
sheet = workbook.Worksheets

# フォントを作成します
font1 = workbook.CreateFont()
font1.FontName = "Yu Gothic"
font1.KnownColor = ExcelColors.LightBlue
font1.IsBold = True
font1.Size = 13

# 別のフォントを作成します
font2 = workbook.CreateFont()
font2.KnownColor = ExcelColors.Red
font2.IsBold = True
font2.IsItalic = True
font2.FontName = "Yu Mincho"
font2.Size = 15

# 指定したセルからRichTextオブジェクトを取得します
richText = sheet.Range["A1"].RichText

# RichTextオブジェクトのテキストを設定します
richText.Text = "1つ買うと、1つ無料"

# 指定した文字範囲に最初のフォントを適用します
richText.SetFont(0, 4, font1)

# 指定した文字範囲に2番目のフォントを適用します
richText.SetFont(6, 9, font2)

# 列幅を設定します
sheet.Columns.ColumnWidth = 33

# Excelファイルとしてワークブックを保存します
workbook.SaveToFile("output/1つのExcelセルに複数のフォントを適用.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Spire.XLSで1つのExcelセルに異なるフォントを適用する

Python でセル範囲のフォントスタイルを変更する

Spire.XLS for Python では、セルの塗りつぶし色や文字揃え、フォントなどの書式を扱うための CellStyle クラスが提供されています。この CellStyle を作成し、CellRange.CellStyleName プロパティでセル範囲に適用するか、Worksheet.CellStyleName プロパティでワークシート全体に適用することが可能です。セル範囲のフォントスタイルを変更するには、以下の手順を実行します。

  • Workbook オブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[index] プロパティで対象のワークシートを取得します。
  • Workbook.Styles.Add() メソッドで CellStyle オブジェクトを作成し、CellStyle.Font プロパティでフォントスタイルを設定します。
  • CellRange.CellStyleName プロパティでセル範囲にスタイルを適用します。
  • Workbook.SaveToFile() メソッドで別の Excel ファイルとして保存します。
from spire.xls import *
from spire.xls.common import *

# Workbookオブジェクトを作成します
workbook = Workbook()

# サンプルのExcelファイルを読み込みます
workbook.LoadFromFile("Sample.xlsx")

# 最初のワークシートを取得します
sheet = workbook.Worksheets

# CellStyleオブジェクトを作成します
fontStyle = workbook.Styles.Add("headerFont")

# フォント名、色、サイズ、スタイルを設定します
fontStyle.Font.Name = "Yu Mincho"
fontStyle.Font.Color = Color.get_Red()
fontStyle.Font.IsBold = True
fontStyle.Font.Size = 14

# ヘッダー行にセルスタイルを適用します
sheet.Range.CellStyleName = fontStyle.Name

# ワークシート全体にセルスタイルを適用する場合(コメントアウト)
# sheet.ApplyStyle(fontStyle)

# 別のExcelファイルとして保存します
workbook.SaveToFile("output/セル範囲にフォントを適用.xlsx")
workbook.Dispose()

PythonでExcelのセル範囲のフォントスタイルを変更する

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in データ
Tagged under

Excel ファイルとデータベース間でデータをエクスポートおよびインポートする機能は、データ管理において非常に重要です。Excel からデータベースへデータをエクスポートすることで、スケーラビリティやセキュリティが向上し、大規模データの効率的な処理や、同時アクセスを伴う共同作業が可能になります。一方、データベースから Excel にデータをインポートすることで、使い慣れたスプレッドシート環境でのデータ分析や可視化、プレゼンテーションが可能となり、複雑な情報もユーザーにとって扱いやすくなります。

本記事では、Python 言語の強力な機能を活用して、データベースと Excel ファイル間のデータ転送を自動化する方法を紹介します。具体的には、Spire.XLS for Python を使用し、SQLite データベースを例にして、データベースから Excel ファイルへのエクスポート、および Excel ファイルからデータベースへのインポートの方法を解説します。

Spire.XLS for Python のインストール

この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.XLS

Python で DB から Excel へデータ出力

Spire.XLS for Python は、Excel ブックの作成、読み込み、編集を行うための豊富なクラスやメソッド、プロパティを提供しています。Python 標準ライブラリの sqlite3 モジュールを使用してデータベースからデータを取得し、Spire.XLS で Excel ファイルを作成してデータを書き込むことで、データベースの内容を簡単にExcelにエクスポートできます。

具体的な手順は以下の通りです:

  • データベースに接続します。
  • Workbook クラスのインスタンスを作成し、初期状態のワークシートを削除します。
  • データベース内の各テーブルをループ処理し、列名とデータを取得します。
  • 各テーブルに対応するワークシートを Workbook.Worksheets.Add() メソッドで作成し、ヘッダー行に列名を、その他の行にデータを Worksheet.Range[].Value プロパティを使って書き込みます。
  • ワークシートの体裁を整えます。
  • Workbook.SaveToFile() メソッドでファイルを保存します。
  • Python
from spire.xls import Workbook, FileFormat
import sqlite3

# データベースに接続
conn = sqlite3.connect("Data.db")
cursor = conn.cursor()

# データベース内のすべてのテーブル名を取得
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
tableNames = [name[0] for name in cursor.fetchall()]

# Excel ファイルを作成
workbook = Workbook()
workbook.Worksheets.Clear()

# データベース内の各テーブルを処理
for tableName in tableNames:
    # テーブルの列名を取得
    cursor.execute(f"PRAGMA table_info('{tableName}')")
    columnsInfo = cursor.fetchall()
    columnNames = [columnInfo[1] for columnInfo in columnsInfo]

    # テーブルのデータを取得
    cursor.execute(f"SELECT * FROM {tableName}")
    rows = cursor.fetchall()

    # ワークシートを作成
    sheet = workbook.Worksheets.Add(tableName)

    # ヘッダーをワークシートに書き込む
    for i in range(len(columnNames)):
        sheet.Range[1, i + 1].Value = columnNames[i]

    # データをワークシートに書き込む
    for j in range(1, len(rows)):
        column = rows[j]
        for k in range(len(column)):
            sheet.Range[j + 1, k + 1].Value = str(column[k])

    # ワークシートをフォーマット
    sheet.AllocatedRange.Style.Font.FontName = "Yu Gothic UI"
    sheet.AllocatedRange.Style.Font.Size = 12.0
    sheet.AllocatedRange.AutoFitRows()
    sheet.AllocatedRange.AutoFitColumns()

# Excel ファイルを保存
workbook.SaveToFile("output/データベースをExcelへ出力.xlsx", FileFormat.Version2016)
workbook.Dispose()
conn.close()

PythonでデータベースのデータをExcelファイルに書き出す

Python で Excel から DB へデータ入力

Spire.XLS for Python は、Excel ファイルからさまざまな形式のデータを読み取る機能も備えており、読み取ったデータを sqlite3 を使ってデータベースに書き込むことが可能です。以下はその詳細な手順です:

  • Workbook クラスのインスタンスを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • データベースに接続します。
  • Excel ブック内の各ワークシートをループ処理します。
  • Workbook.Worksheets.get_Item() メソッドでワークシートを取得し、Worksheet.Name プロパティでシート名を取得します。
  • ヘッダー行のデータを Worksheet.Range[].Value プロパティで取得します。
  • ワークシート名をテーブル名とし、ヘッダー行のデータを列名として、データベースにテーブルを作成します。
  • ワークシートのセルからデータを取得し、対応するテーブルに書き込みます。
  • 変更をコミットして接続を閉じます。
  • Python
from spire.xls import Workbook
import sqlite3

# Workbook のインスタンスを作成
workbook = Workbook()

# Excel ファイルを読み込む
workbook.LoadFromFile("Sample.xlsx")

# データベースに接続
conn = sqlite3.connect("output/Report.db")
cursor = conn.cursor()

for s in range(workbook.Worksheets.Count):
    # ワークシートを取得
    sheet = workbook.Worksheets.get_Item(s)

    # シート名を取得
    sheetName = sheet.Name
    sheetName = sheetName.replace(" ", "")

    # ヘッダー行のデータを取得
    header = []
    for i in range(sheet.AllocatedRange.ColumnCount):
        headerValue = sheet.Range[1, i + 1].Value
        headerValue = headerValue.replace(" ", "")
        header.append(headerValue)

    # データベースのテーブルを作成
    createTableSql = f"CREATE TABLE IF NOT EXISTS {sheetName} ({', '.join([f'{header[i]} TEXT' for i in range(len(header))])})"
    cursor.execute(createTableSql)

    # データをデータベースのテーブルに挿入
    for row in range(1, sheet.AllocatedRange.RowCount):
        data = []
        for col in range(sheet.AllocatedRange.ColumnCount):
            # セルの値を取得
            value = sheet.Range[row + 1, col + 1].Value
            data.append(value)
        # セルの値をテーブルに挿入
        insertSql = f"INSERT INTO {sheetName} ({', '.join(header)}) VALUES ({', '.join(['?' for _ in data])})"
        cursor.execute(insertSql, data)

# 変更をコミットして接続を閉じる
conn.commit()
conn.close()

workbook.Dispose()

Spire.XLSでExcelデータをデータベースに取り込む

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Tagged under