Word 文書の表に行や列を追加・削除することで、データの構造を適切に調整できます。行や列を追加することで、データの増加に対応し、必要な情報をすべて表示できるようになります。一方で、不必要な行や列を削除すれば、表を整理し、文書の冗長な情報を削減できます。本記事では、Spire.Doc for Python を使用して、Python で Word 文書の表に行や列を追加・削除する方法を解説します。
- Python で Word の表に行を追加または挿入する
- Python で Word の表に列を追加または挿入する
- Python で Word の表から行を削除する
- Python で Word の表から列を削除する
Spire.Doc for Python のインストール
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Python で Word の表に行を追加または挿入する
Word の表に行を追加するには、表の末尾に追加する方法と、特定の位置に挿入する方法があります。これには Table.AddRow() または Table.InsertRow() メソッドを使用します。以下の手順で実装できます。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
- Document.Sections[] プロパティを使用して最初のセクションを取得します。
- Section.Tables[] プロパティを使用してセクション内の最初の表を取得します。
- Table.Rows.Insert() メソッドを使用して、表の特定の位置に行を挿入します。
- 挿入した行にデータを追加します。
- Table.AddRow() メソッドを使用して表の末尾に行を追加します。
- 追加した行にデータを入力します。
- Document.SaveToFile() メソッドを使用して、変更を保存します。
- Python
from spire.doc import Document, Table, HorizontalAlignment, VerticalAlignment
# Document オブジェクトを作成します。
document = Document()
# Word 文書を読み込みます。
document.LoadFromFile("Sample.docx")
# 文書の最初のセクションを取得します。
section = document.Sections[0]
# 最初のセクションの最初のテーブルを取得します。
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None
# テーブルの 3 行目として新しい行を挿入します。
table.Rows.Insert(2, table.AddRow())
# 挿入された行を取得します。
insertedRow = table.Rows[2]
# 行にデータを追加します。
for i in range(insertedRow.Cells.Count):
cell = insertedRow.Cells[i]
paragraph = cell.AddParagraph()
textRange = paragraph.AppendText("挿入された行")
textRange.CharacterFormat.FontName = "Yu Gothic UI"
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left
cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle
# テーブルの末尾に新しい行を追加します。
addedRow = table.AddRow()
# 行にデータを追加します。
for i in range(addedRow.Cells.Count):
cell = addedRow.Cells[i]
paragraph = cell.AddParagraph()
textRange = paragraph.AppendText("終了行")
textRange.CharacterFormat.FontName = "Yu Gothic UI"
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left
cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle
# 変更後の文書を保存します。
document.SaveToFile("output/Wordの表に行を追加・挿入.docx")
document.Close()
Python で Word の表に列を追加または挿入する
Spire.Doc for Python には、Word の表に直接列を追加・挿入するメソッドはありません。しかし、各行の特定の位置にセルを追加・挿入することで実現できます。TableRow.Cells.Add() または TableRow.Cells.Insert() メソッドを使用し、以下の手順で実装します。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
- Document.Sections[] プロパティを使用して最初のセクションを取得します。
- Section.Tables[] プロパティを使用してセクション内の最初の表を取得します。
- 表の各行をループ処理します。
- TableCell オブジェクトを作成し、TableRow.Cells.Insert() メソッドを使用して各行の特定の位置に挿入し、セルの幅を設定します。
- セルにデータを追加し、テキストの配置を設定します。
- TableRow.AddCell() メソッドを使用して各行の末尾にセルを追加し、セルの幅を設定します。
- セルにデータを追加し、テキストの配置を設定します。
- Document.SaveToFile() メソッドを使用して、変更を保存します。
- Python
from spire.doc import Document, TableCell, Table, HorizontalAlignment, VerticalAlignment, AutoFitBehaviorType
# Document オブジェクトを作成します。
document = Document()
# Word 文書を読み込みます。
document.LoadFromFile("Sample.docx")
# 文書の最初のセクションを取得します。
section = document.Sections[0]
# 最初のセクションの最初のテーブルを取得します。
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None
# テーブルの各行をループ処理します。
for i in range(table.Rows.Count):
row = table.Rows[i]
# TableCell オブジェクトを作成します。
cell = TableCell(document)
# 行の 3 列目にセルを挿入し、セルの幅を設定します。
row.Cells.Insert(2, cell)
cell.Width = row.Cells[0].Width
# セルにデータを追加します。
paragraph = cell.AddParagraph()
textRange = paragraph.AppendText("挿入された列")
textRange.CharacterFormat.FontName = "Yu Gothic UI"
# テキストの配置を設定します。
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left
cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle
# 行の末尾にセルを追加し、セルの幅を設定します。
cell = row.AddCell()
cell.Width = row.Cells[1].Width
# セルにデータを追加します。
paragraph = cell.AddParagraph()
textRange = paragraph.AppendText("終了列")
textRange.CharacterFormat.FontName = "Yu Gothic UI"
# テキストの配置を設定します。
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left
cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle
# 列を自動調整する
table.AutoFit(AutoFitBehaviorType.AutoFitToContents)
# 変更後の文書を保存します。
document.SaveToFile("output/Wordの表に列を追加・挿入.docx")
document.Close()
Python で Word の表から行を削除する
Word の表から特定の行を削除するには、Table.Rows.RemoveAt() メソッドを使用します。以下の手順で実装します。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
- Document.Sections[] プロパティを使用して最初のセクションを取得します。
- Section.Tables[] プロパティを使用してセクション内の最初の表を取得します。
- Table.Rows.RemoveAt() メソッドを使用して、特定の行を削除します。
- Document.SaveToFile() メソッドを使用して、変更を保存します。
- Python
from spire.doc import Document, Table
# Document オブジェクトを作成します。
document = Document()
# Word 文書を読み込みます。
document.LoadFromFile("Sample.docx")
# 文書の最初のセクションを取得します。
section = document.Sections[0]
# 最初のセクションの最初のテーブルを取得します。
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None
# 行を削除します。
table.Rows.RemoveAt(1)
# 変更後の文書を保存します。
document.SaveToFile("output/Wordの表から行を削除.docx")
document.Close()
Python で Word の表から列を削除する
Word の表から特定の列を削除するには、各行から対応するセルを削除する必要があります。これには TableRow.Cells.RemoveAt() メソッドを使用します。以下の手順で実装します。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
- Document.Sections[] プロパティを使用して最初のセクションを取得します。
- Section.Tables[] プロパティを使用してセクション内の最初の表を取得します。
- 表の各行をループ処理します。
- TableRow.Cells.RemoveAt() メソッドを使用して、各行の特定のセルを削除します。
- Document.SaveToFile() メソッドを使用して、変更を保存します。
- Python
from spire.doc import Document, Table
# Document オブジェクトを作成します。
document = Document()
# Word 文書を読み込みます。
document.LoadFromFile("Sample.docx")
# 文書の最初のセクションを取得します。
section = document.Sections[0]
# 最初のセクションの最初のテーブルを取得します。
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None
# テーブルの各行をループ処理します。
for i in range(table.Rows.Count):
row = table.Rows[i]
# 列のセルを削除します。
row.Cells.RemoveAt(2)
# 変更後の文書を保存します。
document.SaveToFile("output/Wordの表から列を削除.docx")
document.Close()
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。