フッターコンテンツにスキップ
IRONXL FOR PYTHON の使用方法

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

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

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

PythonでExcelデータからWord文書を生成する方法

  1. excelToWord.pyという名前の Python ファイルを作成します。
  2. IronXL および python-docx パッケージをインストールします。
  3. プロジェクト フォルダーに Excel ファイルを作成するか追加します。
  4. IronXL を使用して Excel ドキュメントを読み取ります。
  5. Word 文書を作成し、python-docx を使用して 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は、 .docxファイルなどの Microsoft Word ドキュメントを作成、変更、操作するための Python ライブラリです。 Word 文書を操作するためのシンプルな API を提供し、テキストの追加、書式設定、表や画像の挿入などのタスクを実行できます。

主要な特徴

1. ドキュメントの作成

Word 文書を最初から生成し、段落、表、見出しなどのコンテンツを追加できます。 このパッケージは個々のドキュメントを編集するためにも使用できます。

2. テキスト操作

テキストの段落を追加および変更します。 "ラン"(段落内の異なるスタイルのテキスト部分)を使用してテキストの書式を設定します(例:太字、斜体、下線など)。 さまざまなレベルの見出しを追加してスタイルを設定します。

3. テーブルの追加

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

4. Lists

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

5. スタイルの操作

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

6. 画像の挿入

ドキュメント内の特定の場所に画像を挿入します。 幅と高さを指定して画像のサイズを変更できます。

前提条件

コードに進む前に、次の前提条件が満たされていることを確認してください。

  1. Pythonのインストール:お使いのマシンにPythonがインストールされていることを確認してください。Pythonの公式サイトからダウンロードできます。
  2. IronXL のインストール: 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とpython-docxパッケージを追加する

Pip を使用して IronXL および python-docx パッケージをインストールします。

pip install IronXL python-docx
pip install IronXL python-docx
SHELL

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

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

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

ステップ4: IronXLを使用してExcelドキュメントを読み取る

IronXL を使用して Excel ドキュメントを読み込み、以下のコードを使用してすべてのセルを読み取ります。

import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document

# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
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)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)
import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document

# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
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)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)
PYTHON

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

Word 文書生成プロセスには、Word 文書の作成と、Excel ファイルから読み取ったデータの挿入が含まれます。

# Create a new Word document
doc = Document()

# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)

# Populate table with data from Excel
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the generated Word document
doc.save("sample.docx")
# Create a new Word document
doc = Document()

# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)

# Populate table with data from Excel
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the generated Word document
doc.save("sample.docx")
PYTHON

Word文書を生成するための完全なコード

# Import required libraries
import ironxl
from docx import Document

# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
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)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)

# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table in the Word document
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)

# Save the Word document
doc.save("sample.docx")
# Import required libraries
import ironxl
from docx import Document

# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
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)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)

# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table in the Word document
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)

# Save the Word document
doc.save("sample.docx")
PYTHON

コードの説明

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

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

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

2. python-docx を使って Word 文書を作成する

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

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

出力

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

Wordファイル

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

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

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

ライセンスを使用するには、IronXL ライブラリを使用する前に、以下のようにコードのどこかにライセンス キーを配置します。

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

結論

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

  1. Excel からのデータの抽出: スクリプトは Excel ファイルを読み込み、最初のワークシートからデータを抽出します。 行と列を反復処理してセルの値をリストに収集し、簡単に操作したり保存したりできるようになります。
  2. Word 文書の作成と入力: python-docx ライブラリを使用して、スクリプトは新しい Word 文書を作成し、タイトルを追加し、抽出された Excel データを Word 文書内の表にフォーマットします。 Excel データの最初の行をヘッダーとして、残りの行をテーブル データとして自動的に配置します。

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

よくある質問

Pythonを使用してExcelデータをWordドキュメントに変換するにはどうすればいいですか?

IronXLライブラリを使用してExcelファイルを読み込み処理し、その後python-docxライブラリを使用してWordドキュメントを作成および入力することで、Pythonを使用してExcelデータをWordドキュメントに変換できます。

IronXLとpython-docxを一緒に使う利点は何ですか?

IronXLとpython-docxの組み合わせにより、ExcelからWordドキュメントへの変換をシームレスに統合および自動化できます。IronXLはMicrosoft Excelが不要な状態でExcelファイルの読み取りと編集が可能で、python-docxはWordドキュメントを操作するための簡単なAPIを提供します。

Microsoft ExcelをインストールせずにPythonでExcelファイルを読む方法は?

IronXLライブラリを使用することで、Microsoft ExcelをインストールせずにPythonでExcelファイルを読み取ることができます。IronXLは、プログラムでのExcelファイルの読み込みとデータへのアクセスを可能にします。

ExcelデータからWordドキュメントを作成するプロセスは何ですか?

このプロセスでは、IronXLを使用してExcelファイルからデータを読み取り、そのデータを表やテキストブロックに挿入するためにpython-docxを使用してWordドキュメントを作成します。

IronXLは複数のExcelファイル形式に対応していますか?

はい、IronXLはXLS、XLSX、CSVなど、複数のExcelファイル形式をサポートしており、さまざまなタイプのExcelファイルを扱う柔軟性を提供します。

Python環境にIronXLとpython-docxをインストールする方法は?

pipを使用して以下のコマンドを実行することで、Python環境にIronXLとpython-docxをインストールできます:pip install IronXL python-docx

ExcelからWordドキュメントへの変換を自動化する利点は何ですか?

ExcelからWordドキュメントへの変換を自動化することで、手作業を減少させ、エラーを最小限に抑え、文書全体で一貫したフォーマットとデータ整合性を確保することにより、効率性、正確性、プレゼンテーションを向上させることができます。

IronXLを使用してExcelセルを装飾する方法は?

IronXLは、フォント、色、罫線の設定など、Excelセルの外観をカスタマイズする機能を提供し、データをWordに転送する前のフォーマットに役立ちます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。