0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでWordの表に行や列 挿入したり削除したりする

Posted at

Word文書の表は、データを整理して表示するために使用することができます。テーブルを処理する中で、テーブルの構造を調整したり、異なるデータ表示のニーズに適応したりするために、行や列を挿入したり削除したりする必要が生じることがあります。以下では、PythonでWordの表に行や列を挿入したり削除したりする方法を紹介します:

Pythonライブラリのインストール

必要なPythonライブラリはSpire.Doc for Pythonです。このPythonライブラリはほぼすべてのWord文書要素をサポートしており、Wordで表を作成したり操作したりすることができます。

pip install Spire.Doc

PythonでWordの表に行を挿入する

Spire.Doc for Pythonは、Wordテーブルの指定された位置に新しい行を挿入したり、テーブルの末尾に新しい行を追加するための2つの異なるメソッドを提供します。主なメソッドは以下の通りです:

  • Table クラス:Word文書内の表を表します。
  • Table.Rows.Insert(index,row) メソッド:表の指定された位置に行を挿入します。
  • Table.AddRow() メソッド:表の最後に行を追加します。

Pythonのコード:

from spire.doc import *
from spire.doc.common import *

# Word文書を読み込む
document = Document()
document.LoadFromFile("WordTable.docx")

# 最初のセクションを取得する
section = document.Sections[0]
# セクションの最初のテーブルを取得する
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None

# 4列目として行を挿入する
table.Rows.Insert(3, table.AddRow())

# テーブルの最後に行を追加する
addedRow = table.AddRow()

# ドキュメントを保存する
document.SaveToFile("AddRows.docx", FileFormat.Docx2016)
document.Close()

AddRows.png

PythonでWordテーブルに列を挿入する

行の挿入とは異なり、列の挿入には直接呼び出せるメソッドはない。列の挿入の効果を得るには、各行のセルを指定された位置に挿入すればよい。その手順は以下の通りである:

  1. LoadFromFile() メソッドで Word ドキュメントを読み込みます;
  2. 指定したセクションの指定したテーブルを取得する;
  3. 表の各行を繰り返し処理します;
  4. セルを作成し、TableRow.Cells.Insert() メソッドを使用して、指定された位置の各行に挿入します;
  5. TableRow.AddCell() メソッドを使用して、各行の末尾に直接セルを追加することもできます;
  6. ドキュメントを保存します。

Pythonのコード:

from spire.doc import *
from spire.doc.common import *

# Word文書を読み込む
document = Document()
document.LoadFromFile("WordTable.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]

    # 行の3番目の位置にセルを挿入する
    cell = TableCell(document)  
    row.Cells.Insert(2, cell)

    # 新しいセルの幅を設定する
    row.Cells[2].SetCellWidth(40, CellWidthType.Point)

    # 行の最後に新しいセルを追加する
    cell = row.AddCell()

    # 新しいセルの幅を2列目と同じにする
    cell.Width = row.Cells[1].Width

# ドキュメントを保存する
document.SaveToFile("AddColumns.docx", FileFormat.Docx2016)
document.Close()

AddColumns.png

PythonでWordテーブルから指定した行や列を削除する

行の挿入とは異なり、列の挿入には直接呼び出せるメソッドはない。列の挿入の効果を得るには、各行のセルを指定された位置に挿入すればよい。その手順は以下の通りである:

  • 表の特定の行を削除するには、Table.Rows.RemoveAt() メソッドを直接呼び出して、インデックスで削除します。
  • 指定した列を削除するには、テーブルの各行を繰り返し処理し、TableRow.Cells.RemoveAt() メソッドを使用して各行の指定したセルを削除する必要があります。

Pythonのコード:

from spire.doc import *
from spire.doc.common import *

# Word文書を読み込む
document = Document()
document.LoadFromFile("WordTable.docx")

# 最初のセクションを取得する
section = document.Sections[0]

# セクションの最初のテーブルを取得する
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None

# 2行目を削除
table.Rows.RemoveAt(1)

# テーブルの各行を繰り返し処理する
for i in range(table.Rows.Count):
    # 各行の3番目のセルを削除する
    row = table.Rows[i]
    row.Cells.RemoveAt(2)

# ドキュメントを保存する
document.SaveToFile("DeleteRowColumns.docx", FileFormat.Docx2016)
document.Close()

ウォーターマークを削除するには?クリックして1ヶ月のトライアルライセンスをリクエストする

関連記事
PythonでWordの表を作成する
PythonでWordのテーブルを削除する
PythonでWordから表を抽出する

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?