PYTHONのためのIRONXLの使用

PythonでExcelデータからWordドキュメントを生成する

チャクニット・ビン
チャクニット・ビン
2024年12月15日
共有:

イントロダクション

ExcelスプレッドシートからPythonを使用してWordテンプレートを生成することは、さまざまなプロフェッショナルおよび個人的な状況において効率、正確性、プレゼンテーションを大幅に向上させる多くの利点を提供します。 自動化、カスタマイズ、データ整合性を活用することで、プロフェッショナルは、Word文書を、重要な情報を明確かつ正確に伝える効果的なコミュニケーションツールにすることができます。 Microsoft ExcelをMicrosoft Wordに変換できるライブラリの一つに、Iron SoftwareのIronXL Pythonパッケージとpython-docxライブラリがあります。

この記事では、ExcelファイルからWord文書を生成するために必要な手順を検討します。

PythonでExcelデータからWordドキュメントを生成する方法

  1. excelToWord.pyという名前のPythonファイルを作成してください。

  2. IronXLとpython-docxパッケージを追加してください。

  3. プロジェクトフォルダにExcelファイルを作成または追加します。

  4. IronXL.Excel ドキュメントを読む。

  5. python-docxを使用してWord文書を作成し、Excelデータを挿入します。

IronXLとは何ですか?

IronXL for Pythonは、Iron Softwareによって開発された強力なライブラリで、開発者がPythonプロジェクト内でExcelファイル(XLS、XLSX、CSV)の作成、読み取り、編集を可能にします。 以下はIronXLを使用する主な特徴と利点です:

主な機能

  1. Excel依存なし:IronXLはサーバーにMicrosoft Excelをインストールする必要がなく、Excelのないサーバー環境に最適です。

  2. 直感的なAPI: IronXLはExcelファイルを扱うための自然で直感的なAPIを提供し、Pythonプロジェクトに簡単に統合できます。

  3. 複数形式のサポート: IronXL は、XLS、XLSX、CSV、TSV を含むさまざまな Excel ファイル形式をサポートしています。

  4. セルのスタイリング: 異なるフォント、サイズ、背景、枠線、数値形式でセルをスタイル設定できます。

  5. 数式の処理: IronXLはExcelの数式を扱うことができ、シートが編集されるたびに再計算を行います。

  6. クロスプラットフォーム互換性: IronXLはWindows、macOS、Linux、Docker、Azure、AWSで動作します。

python-docxとは

python-docx は、Microsoft Wordドキュメント(`.docx` ファイルなど)を作成、変更、操作するためのPythonライブラリです。 Word文書と対話するためのシンプルなAPIを提供し、テキストの追加、書式設定、表や画像の挿入などのタスクを実行できるようにします。

主な機能

1. ドキュメントの作成

Word文書をゼロから作成し、段落、表、見出しなどのコンテンツを追加できます。 このパッケージは、個々の文書の編集にも使用できます。

2. テキスト操作

段落の追加と修正 テキストのフォーマット(例:太字、斜体、下線など)は、「ラン」(段落内の異なるスタイルのテキストの部分)を使用して行います。 さまざまなレベルの見出しを追加し、スタイルを整えます。

3. テーブルの追加

指定された行数と列数のテーブルを作成します。 テーブルの個々のセルにアクセスし、変更します。

4. リスト

定義済みのスタイルで箇条書きまたは番号付きリストを作成します。

5. スタイルの操作

見出し1」「標準」などの定義済みスタイルを適用します。また、段落やテキストにカスタムスタイルを定義して適用することもできます。

6. 画像の挿入

文書内の特定の位置に画像を挿入します。 画像の幅と高さを指定してリサイズすることができます。

前提条件

コードに入る前に、以下の前提条件があることを確認してください:

  1. Python インストール済み: マシンに Python がインストールされていることを確認してください。公式 Python ウェブサイトからダウンロードできます。

  2. IronXL Installed: IronXLパッケージをインストールする必要があります。 翻訳にはpipを使用します。

  3. python-docx インストール済み: python-docx パッケージをインストールする必要があります。 翻訳にはpipを使用します。

  4. Excelファイル: データを使ってサンプルのExcelファイルを作成します。

ステップ1: excelToWord.pyというPythonファイルを作成します。

Visual Studio Codeのようなお気に入りのIDEを開き、excelToWord.pyというファイルを作成してください。

PythonでExcelデータからWordドキュメントを生成する方法: 図1 - Excelドキュメント生成

ステップ2: IronXLパッケージの追加

Pipを使ってIronXLとpython-docxパッケージをインストールしてください。

pip install IronXL python-docx

ステップ3:プロジェクトフォルダにExcelファイルを作成または追加する

サンプルのExcelファイルをコードフォルダにコピーしてください。 ファイルには以下のデータが含まれています。

PythonでExcelデータからWord文書を生成する方法:図2 - サンプルExcel

ステップ4: IronXLを使ってExcelドキュメントを読む

IronXLを使ってExcelドキュメントを読み込み、以下のコードを使ってすべてのセルを読み込んでください。

import ironxl
from docx import Document
ironxl.License.LicenseKey = "your license"
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# read data from excel
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)
        row_data.append(cell_value)
    data.append(row_data)
PYTHON

ステップ5: python-docxを使ってWord文書を作成し、Excelデータを挿入する。

Word文書の生成プロセスでは、以前のExcelデータから読み取ったWord文書を作成します。

doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)
doc.save("sample.docx")
PYTHON

Word文書を生成するための完全なコードはこちらです。

# Word documents from Excel data
import ironxl
from docx import Document
ironxl.License.LicenseKey = "your license"
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# read data from excel
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)
        row_data.append(cell_value)
    data.append(row_data)
# document generation process
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)
doc.save("sample.docx") # save as Microsoft Word document
PYTHON

コードの説明

このPythonスクリプトは、主に2つのタスクを実行します。

IronXLを使用してExcelファイルからデータを読み取る

  • スクリプトは、PythonでExcelファイルを処理するために使用されるIronXLライブラリのライセンスを設定することから始まります。
  • 次に、Excelファイル(sample.xlsx)を読み込み、ファイルから最初のワークシートを選択します。
  • スクリプトは、ワークシートからデータを読み取り、すべての行と列を繰り返し処理します。 それは2次元リスト(データ)の各セルから値を収集します。Excelシートの各行はデータ内のサブリストに対応しています。
  • セルの値は、読み込まれるとコンソールに出力されます。

2. python-docxを使用してWordドキュメントを作成する

  • 新しいWordドキュメントはpython-docxライブラリを使用して作成されます。
  • スクリプトは、ドキュメントの上部に見出しを使用してタイトル(「Excel Data Export Using Python Docx」)を追加します。
  • 次に、ドキュメント内にテーブルを作成します。このテーブルの最初の行にはExcelシートの最初の行からヘッダーが含まれ、続く行にはExcelファイルの対応するデータが含まれます。
  • 最後に、Word文書をsample.docxとして保存します。

    スクリプトはExcelファイル(sample.xlsx)からデータを読み取り、それを処理して、新しいWordドキュメント(sample.docx)のテーブルにデータをエクスポートします。 Excelシートの最初の行がテーブルのヘッダーとして使用され、Excelシートの各行のデータがテーブルの行としてWord文書に追加されます。

出力

PythonでExcelデータからWord文書を生成する方法: 図3 - ExcelからWordへ

ワードファイル

PythonでExcelデータからWordドキュメントを生成する方法: 図4 - Wordドキュメントフォーマット

IronXLライセンス(試用版あり)

IronXLはコードに添付された有効なライセンスファイルで動作します。 ユーザーはライセンスページから簡単に試用ライセンスを取得できます。

ライセンスを使用するには、IronXLライブラリを使用する前に、以下のようにコードのどこかにライセンスを記述してください。

ironxl.License.LicenseKey = "Your License Key"
PYTHON

結論

このサンプルコードは、IronXLを使用してExcelファイルからデータを効果的に読み取り、そのデータをpython-docxを使用してWordドキュメントにエクスポートする方法を示しています。 プロセスは主に2つのステップから構成されます:

  1. Excelからデータを抽出: スクリプトはExcelファイルを読み込み、最初のワークシートからデータを抽出します。 行と列を繰り返し、セルの値をリストに集め、簡単に操作したり保存したりできます。

  2. Word ドキュメントの作成とデータの入力: python-docx ライブラリを使用して、スクリプトは新しい Word ドキュメントを作成し、タイトルを追加し、抽出された Excel データを Word ドキュメント内の表にフォーマットします。 エクセルデータの最初の行をヘッダーとして、残りの行をテーブルデータとして自動的に配置します。

    このアプローチにより、ExcelからWordへのシームレスなデータ転送が可能になり、レポート作成、データエクスポート、ドキュメントの自動化などの作業に役立ちます。 Excel 処理のための IronXL と Word ドキュメント作成のための python-docx の組み合わせは、Python でこれらのファイル形式を扱うための強力なソリューションを提供します。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
PythonでExcelファイルを作成する方法
次へ >
PythonでExcelファイルからワークシートを削除する方法