Python で Excel データから Word ドキュメントを生成する
Pythonを使用して Excel スプレッドシートから Word テンプレートを生成すると、さまざまな専門的および個人的な状況で効率、正確性、プレゼンテーションを大幅に向上できる多くの利点が得られます。 自動化、カスタマイズ、データの整合性を活用することで、専門家は Word 文書が重要な情報を明確かつ正確に伝える効果的なコミュニケーション ツールであることを保証できます。 Microsoft Excel をMicrosoft Wordに変換できるライブラリの 1 つとして、 Iron SoftwareのIronXL Python パッケージとpython-docxライブラリがあります。
この記事では、Excel ファイルから Word 文書を生成するために必要な手順について説明します。
PythonでExcelデータからWord文書を生成する方法
excelToWord.pyという名前の Python ファイルを作成します。- IronXL および python-docx パッケージをインストールします。
- プロジェクト フォルダーに Excel ファイルを作成するか追加します。
- IronXL を使用して Excel ドキュメントを読み取ります。
- Word 文書を作成し、python-docx を使用して Excel データを挿入します。
IronXLとは?
IronXL for Python は、Iron Software によって開発された強力なライブラリであり、開発者が Python プロジェクトで Excel ファイル (XLS、XLSX、CSV) を作成、読み取り、編集できるようにします。 IronXL を使用する主な機能と利点は次のとおりです。
主要機能
- 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. 画像の挿入
ドキュメント内の特定の場所に画像を挿入します。 幅と高さを指定して画像のサイズを変更できます。
前提条件
コードに進む前に、次の前提条件が満たされていることを確認してください。
- Pythonのインストール:お使いのマシンにPythonがインストールされていることを確認してください。Pythonの公式サイトからダウンロードできます。
- IronXL のインストール: IronXL パッケージをインストールする必要があります。 これは pip を使って実行できます。
- python-docx のインストール: python-docx パッケージをインストールする必要があります。 これは pip を使って実行できます。
- Excel ファイル: データを含むサンプル Excel ファイルを作成します。
ステップ1: excelToWord.pyという名前のPythonファイルを作成する
Visual Studio Code などのお気に入りの IDE を開き、 excelToWord.pyというファイルを作成します。
ステップ2: IronXLとpython-docxパッケージを追加する
Pip を使用して IronXL および python-docx パッケージをインストールします。
pip install IronXL python-docxpip install IronXL python-docxステップ3: Excelファイルを作成またはプロジェクトフォルダに追加する
サンプル 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)ステップ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")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 スクリプトは主に 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 文書に追加されます。
出力
Wordファイル
IronXL ライセンス(試用版あり)
IronXL は、コードに添付された有効なライセンス ファイルで動作します。 ユーザーはライセンス ページから簡単に試用ライセンスを取得できます。
ライセンスを使用するには、IronXL ライブラリを使用する前に、以下のようにコードのどこかにライセンス キーを配置します。
ironxl.License.LicenseKey = "Your License Key"ironxl.License.LicenseKey = "Your License Key"結論
サンプル コードは、 IronXLを使用してExcel ファイルからデータを読み取り、 python-docxを使用してそのデータをWord 文書にエクスポートする効果的な方法を示しています。 プロセスには主に2つのステップがあります:
- Excel からのデータの抽出: スクリプトは Excel ファイルを読み込み、最初のワークシートからデータを抽出します。 行と列を反復処理してセルの値をリストに収集し、簡単に操作したり保存したりできるようになります。
- 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に転送する前のフォーマットに役立ちます。







