チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

Koohji

Koohji

Excel ファイルを PDF 形式に変換することで、スプレッドシートを他人と共有・配布しやすくなります。特に、異なるデバイスやソフトウェアでもレイアウトや書式を維持したい場合に便利です。さらに、PDF は Excel ファイルよりも見栄えが良く、公式なレポートやプレゼン資料、ビジネス文書としてよく利用されます。

この記事では、Python で Spire.XLS for Python ライブラリを使用して、Excel ファイルを PDF に変換する方法をご紹介します。

Spire.XLS for Python のインストール

この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.XLS

Python で Excel 全体を PDF に変換する

Excelドキュメント全体を1つのPDFファイルに変換するには、Workbook.SaveToFile() メソッドを使用します。変換後のPDFには、各ワークシートが1ページずつ表示されます。変換の詳細設定は、Workbook.ConverterSetting プロパティを使って調整できます。

以下は、Excel ドキュメント全体を PDF に変換する手順です:

  • Workbook オブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Worksheet.PageSetup プロパティを使用して、各ワークシートの余白(PDF の空白部分になる)を設定します。
  • Workbook.ConverterSetting オブジェクトのプロパティを使って、PDF 変換時のオプションを指定します。
  • Workbook.SaveToFile() メソッドで、Excel ドキュメント全体を PDF ファイルに変換します。
  • Python
from spire.xls import Workbook, FileFormat

# Workbook オブジェクトを作成します
workbook = Workbook()

# Excel ドキュメントを読み込みます
workbook.LoadFromFile("Sample.xlsx")

# ワークブック内のワークシートを繰り返し処理します
for sheet in workbook.Worksheets:

    # PageSetup オブジェクトを取得します
    pageSetup = sheet.PageSetup

    # ページの余白を設定します
    pageSetup.TopMargin = 0.3
    pageSetup.BottomMargin = 0.3
    pageSetup.LeftMargin = 0.3
    pageSetup.RightMargin = 0.3

# PDF 変換時にワークシートをページに収めるように設定します
workbook.ConverterSetting.SheetFitToPage = True

# PDF ファイルに変換します
workbook.SaveToFile("output/ExcelをPDFに変換.pdf", FileFormat.PDF)
workbook.Dispose()

PythonコードでExcelワークブック全体をPDF文書に変換

Python で特定のワークシートのみを PDF に変換する

特定のワークシートだけを PDF に変換したい場合は、Worksheet.SaveToPdf() メソッドを使用します。以下がその手順です:

  • Workbook オブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[] プロパティを使用して、変換したいワークシートを取得します。
  • Worksheet.PageSetup プロパティで、該当ワークシートの余白を設定します。
  • Workbook.ConverterSetting オブジェクトで、PDF 変換時のオプションを指定します。
  • Worksheet.SaveToPdf() メソッドを使って、選択したワークシートを PDF に変換します。
  • Python
from spire.xls import Workbook

# Workbook オブジェクトを作成します
workbook = Workbook()

# Excel ドキュメントを読み込みます
workbook.LoadFromFile("Sample.xlsx")

# 特定のワークシートを取得します
sheet = workbook.Worksheets[1]

# PageSetup オブジェクトを取得します
pageSetup = sheet.PageSetup

# ページの余白を設定します
pageSetup.TopMargin = 0.3
pageSetup.BottomMargin = 0.3
pageSetup.LeftMargin = 0.3
pageSetup.RightMargin = 0.3

# PDF 変換時にワークシートをページに収めるように設定します
workbook.ConverterSetting.SheetFitToPage = True

# ワークシートを PDF ファイルに変換します
sheet.SaveToPdf("output/ワークシートをPDFに変換.pdf")
workbook.Dispose()

PythonコードによるワークシートのPDF文書への変換

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Excel スプレッドシートは、データの整理、分析、表形式での表示に広く利用されています。プログラムから Excel ファイルを操作できるようになると、自動化や他のアプリケーションとの連携が可能になり、大変便利です。特に、新しい Excel ファイルを作成したり、既存のファイルから情報を取得したり、必要に応じてデータを更新・変更する方法を理解しておくと役立ちます。

本記事では、Spire.XLS for Python ライブラリを使用して、Python で Excel ドキュメントを作成・読み取り・更新する方法を紹介します。

Spire.XLS for Python のインストール

この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.XLS

Python で Excel ドキュメントを作成する

Spire.XLS for Python は、Excel ドキュメントを作成・編集するためのさまざまなクラスやインターフェースを提供しています。以下は、この記事で使用する主なクラス、プロパティ、およびメソッドの一覧です。

メンバー 説明
Workbook クラス Excel ブック(ファイル全体)を表します。
Workbook.Worksheets.Add() メソッド 新しいワークシートをブックに追加します。
Workbook.SaveToFile() メソッド ワークブックを Excel ファイルとして保存します。
Worksheet クラス ワークブック内のワークシートを表します。
Worksheet.Range プロパティ ワークシート内の特定のセルまたはセル範囲を取得します。
Worksheet.Range.Text プロパティ セルの文字列データを取得または設定します。
Worksheet.Rows プロパティ ワークシート内のすべての行を取得します。
CellRange クラス セルまたはセル範囲を表します。

以下は、Spire.XLS for Python を使用してゼロから Excel ドキュメントを作成する手順です。

  • Workbook オブジェクトを作成します。
  • Workbook.Worksheets.Add() メソッドでワークシートを追加します。
  • Worksheet.Range.Text プロパティを使って特定のセルにデータを書き込みます。
  • Workbook.SaveToFile() メソッドを使って、Excel ファイルとして保存します。
  • Python
from spire.xls import Workbook, HorizontalAlignType, VerticalAlignType, LineStyleType, ExcelColors, FileFormat

# Workbook オブジェクトを作成します
wb = Workbook()

# 既定のワークシートを削除します
wb.Worksheets.Clear()

# ワークシートを追加し、「社員」と名前を付けます
sheet = wb.Worksheets.Add("社員")

# A1 から G1 のセルを結合します
sheet.Range["A1:G1"].Merge()

# A1 にデータを書き込み、書式を設定します
sheet.Range["A1"].Text = "寰宇自動車会社の社員基本情報"
sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1"].Style.Font.IsBold = True
sheet.Range["A1"].Style.Font.Size = 13

# 1行目の行の高さを設定します
sheet.Rows[0].RowHeight = 30

# 特定のセルにデータを書き込みます
sheet.Range["A2"].Text = "氏名"
sheet.Range["B2"].Text = "性別"
sheet.Range["C2"].Text = "生年月日"
sheet.Range["D2"].Text = "学歴"
sheet.Range["E2"].Text = "連絡先"
sheet.Range["F2"].Text = "職位"
sheet.Range["G2"].Text = "社員ID"

sheet.Range["A3"].Text = "健太"
sheet.Range["B3"].Text = "男性"
sheet.Range["C3"].Text = "1990-02-10"
sheet.Range["D3"].Text = "学士"
sheet.Range["E3"].Text = "24756854"
sheet.Range["F3"].Text = "整備士"
sheet.Range["G3"].Text = "0021"

sheet.Range["A4"].Text = "翔太"
sheet.Range["B4"].Text = "男性"
sheet.Range["C4"].Text = "1985-06-08"
sheet.Range["D4"].Text = "修士"
sheet.Range["E4"].Text = "59863247"
sheet.Range["F4"].Text = "整備士"
sheet.Range["G4"].Text = "0022"

sheet.Range["A5"].Text = "彩香"
sheet.Range["B5"].Text = "女性"
sheet.Range["C5"].Text = "1989-11-25"
sheet.Range["D5"].Text = "学士"
sheet.Range["E5"].Text = "79540352"
sheet.Range["F5"].Text = "営業"
sheet.Range["G5"].Text = "0023"

sheet.Range["A6"].Text = "大輔"
sheet.Range["B6"].Text = "男性"
sheet.Range["C6"].Text = "1988-04-16"
sheet.Range["D6"].Text = "修士"
sheet.Range["E6"].Text = "52014060"
sheet.Range["F6"].Text = "整備士"
sheet.Range["G6"].Text = "0024"

sheet.Range["A7"].Text = "美咲"
sheet.Range["B7"].Text = "女性"
sheet.Range["C7"].Text = "1998-01-21"
sheet.Range["D7"].Text = "学士"
sheet.Range["E7"].Text = "35401489"
sheet.Range["F7"].Text = "人事"
sheet.Range["G7"].Text = "0025"

# 指定範囲の行の高さを設定します
sheet.Range["A2:G7"].RowHeight = 15

# 列幅を設定します
sheet.SetColumnWidth(3, 15)
sheet.SetColumnWidth(4, 21)
sheet.SetColumnWidth(5, 15)

# 指定範囲の罫線スタイルを設定します
sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin)
sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black

# 使用するすべてのセルにフォント名を設定する
sheet.Range.Style.Font.FontName = "Yu Gothic UI"

# .xlsx ファイルとして保存します
wb.SaveToFile("output/Excelファイルの作成.xlsx", FileFormat.Version2016)
wb.Dispose()

PythonでExcelファイルを作成してデータを書き込む

Python で Excel ワークシートからデータを読み取る

Worksheet.Range.Value プロパティを使用すると、セルの数値または文字列の値を文字列として取得できます。ワークシート全体やセル範囲からデータを取得するには、セルをループ処理することで可能です。

以下は、Spire.XLS for Python を使用してワークシートからデータを取得する手順です。

  • Workbook オブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[index] プロパティで特定のワークシートを取得します。
  • Worksheet.AllocatedRange プロパティで、データが含まれているセル範囲を取得します。
  • 行と列をループ処理して各セルにアクセスし、CellRange.Value プロパティで値を取得します。
  • Python
from spire.xls import Workbook

# Workbook オブジェクトを作成します
wb = Workbook()

# 既存の Excel ファイルを読み込みます
wb.LoadFromFile("output/Excelファイルの作成.xlsx")

# 最初のワークシートを取得します
sheet = wb.Worksheets[0]

# データが入力されているセル範囲を取得します
locatedRange = sheet.AllocatedRange

# 行を繰り返し処理します
for i in range(len(sheet.Rows)):

    # 列を繰り返し処理します
    for j in range(len(locatedRange.Rows[i].Columns)):

        # 特定のセルのデータを取得して出力します
        print(locatedRange[i + 1, j + 1].Value + "  ", end='')

    print("")

PythonコードでExcelファイルからデータを読み取る

Python で Excel ドキュメントを更新する

特定のセルの値を変更するには、Worksheet.Range.Value プロパティを使って新しい値を代入するだけで構いません。以下は、その手順です。

  • Workbook オブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[index] プロパティで編集したいワークシートを取得します。
  • Worksheet.Range.Value プロパティを使って、特定のセルの値を変更します。
  • Workbook.SaveToFile() メソッドを使用して、変更後の Excel ファイルを保存します。
  • Python
from spire.xls import Workbook, ExcelVersion

# Workbook オブジェクトを作成します
wb = Workbook()

# 既存の Excel ファイルを読み込みます
wb.LoadFromFile("output/Excelファイルの作成.xlsx")

# 最初のワークシートを取得します
sheet = wb.Worksheets[0]

# 特定のセルの値を変更します
sheet.Range["A1"].Value = "更新済みの値"

# ファイルとして保存します
wb.SaveToFile("output/Excelファイルの更新.xlsx", ExcelVersion.Version2016)
wb.Dispose()

Pythonを使ったExcelファイルのセル値の更新

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

透かしとは、文書の本文の背面に半透明で表示される文字列や画像のことです。Word では、著作権記号、作成者名、会社のロゴなどを透かしとして追加することで、文書の知的財産を保護できます。また、「下書き」「機密」「最終版」など、文書の状態を示す目的でも使用されます。

この記事では、Spire.Doc for Python を使用して、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 文書に文字の透かしを挿入する

Spire.Doc for Python では、TextWatermark クラスを使用して文字の透かしを作成し、Document.Watermark プロパティを通じて文書に挿入できます。以下に手順を示します。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して、Word 文書を読み込みます。
  • TextWatermark クラスのインスタンスを作成します。
  • TextWatermark クラスの各種メソッドで、透かしに使用する文字列、フォントサイズ、色、レイアウト(斜めや水平など)を設定します。
  • Document.Watermark プロパティを使って、文字の透かしを文書に適用します。
  • Document.SaveToFile() メソッドで、編集後の文書を保存します。
  • Python
from spire.doc import Document, TextWatermark, Color, WatermarkLayout

# Documentオブジェクトを作成する
document = Document()

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

# TextWatermarkオブジェクトを作成する
txtWatermark = TextWatermark()

# テキスト透かしの書式を設定する
txtWatermark.Text = "コピー厳禁"
txtWatermark.FontSize = 65
txtWatermark.Color = Color.get_Red()
txtWatermark.Layout = WatermarkLayout.Diagonal

# 文書にテキスト透かしを追加する
document.Watermark = txtWatermark

# 処理結果の文書を保存する
document.SaveToFile("output/テキスト透かし.docx")
document.Close()

Spire.DocでWord文書にテキスト透かしを挿入

Python で Word 文書に画像の透かしを挿入する

画像の透かしを設定するには、PictureWatermark クラスのメソッドを使用します。手順は以下の通りです。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • PictureWatermark クラスのインスタンスを作成します。
  • PictureWatermark.SetPicture() メソッドを使って透かしとして使用する画像を読み込み、画像の倍率や「ウォッシュアウト」効果(色を薄くする効果)を設定します。
  • Document.Watermark プロパティを使用して、画像の透かしを文書に適用します。
  • Document.SaveToFile() メソッドで、完成した文書を保存します。
  • Python
from spire.doc import Document, PictureWatermark

# Documentオブジェクトを作成する
document = Document()

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

# PictureWatermarkオブジェクトを作成する
picture = PictureWatermark()

# 画像透かしの書式を設定する
picture.SetPicture("Watermark.png")
picture.Scaling = 100
picture.IsWashout = False  # 薄く表示しない(はっきり表示)

# 文書に画像透かしを追加する
document.Watermark = picture

# 処理結果の文書を保存する
document.SaveToFile("Output/画像透かし.docx")
document.Close()

Pythonを使ったWord文書への画像透かし挿入

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

テキスト ボックスは、Word において非常に柔軟なツールであり、ページ上の任意の位置に文字列やその他の要素を配置できます。これにより、目を引くチラシ、パンフレット、報告書などを作成することが可能になります。特定の文章を強調したり、画像の近くにキャプションを追加したり、文書に装飾的な要素を加えたりと、テキスト ボックスを活用することで、実用的かつ視覚的に魅力的なドキュメント デザインが可能になります。

この記事では、Spire.Doc for Python を使用して、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 文書にテキスト ボックスを挿入する

Spire.Doc for Python では、Paragraph.AppendTextBox() メソッドを使用して、特定の段落にテキスト ボックスを挿入できます。テキスト ボックスの内容や書式は、TextBox オブジェクトのプロパティを通じて設定します。以下に詳細な手順を示します。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Section.AddParagraph() メソッドを使用して、最初のセクションに段落を追加します。
  • Paragraph.AppendTextBox() メソッドで、段落にテキスト ボックスを挿入します。
  • TextBox.Format プロパティを使って、テキスト ボックスの書式を取得し、TextBoxFormat クラスのプロパティで折り返しの種類、配置位置、線の色、塗りつぶしの色などを設定します。
  • TextBox.Body.AddParagraph() メソッドで、テキスト ボックス内に段落を追加します。
  • Paragraph.AppendPicture() メソッドを使用して、テキスト ボックス内の段落に画像を追加します。
  • Paragraph.AppendText() メソッドで、テキスト ボックスに文字列を追加します。
  • Document.SaveToFile() メソッドで、編集結果を別ファイルとして保存します。
  • Python
from spire.doc import Document, TextWrappingStyle, HorizontalOrigin, VerticalOrigin, Color, HorizontalAlignment

# Documentオブジェクトを作成します
document = Document()

# Word文書を読み込みます
document.LoadFromFile("Sample.docx")

# テキストボックスを挿入し、折り返しのスタイルを設定します
textBox = document.Sections[0].Paragraphs[0].AppendTextBox(135, 300)
textBox.Format.TextWrappingStyle = TextWrappingStyle.Square  # 四角形で折り返し

# テキストボックスの位置を設定します
textBox.Format.HorizontalOrigin = HorizontalOrigin.RightMarginArea  # 右マージン基準
textBox.Format.HorizontalPosition = -145.0  # 水平方向の位置
textBox.Format.VerticalOrigin = VerticalOrigin.Page  # ページ基準
textBox.Format.VerticalPosition = 120.0  # 垂直方向の位置

# テキストボックスの枠線のスタイルと塗りつぶし色を設定します
textBox.Format.LineColor = Color.get_DarkBlue()  # 枠線の色
textBox.Format.FillColor = Color.get_LightGray()  # 背景色

# テキストボックス内に画像を段落として挿入します
para = textBox.Body.AddParagraph()
picture = para.AppendPicture("Wikipedia.png")

# 段落の配置を中央揃えにします
para.Format.HorizontalAlignment = HorizontalAlignment.Center

# 挿入した画像のサイズを設定します
picture.Height = 90.0
picture.Width = 90.0

# テキストボックス内にテキストを第2段落として挿入します
textRange = para.AppendText("ウィキペディアは、利用者によって共同で執筆されている無料の百科事典です。"
                            "2001年の創設以来急速に成長し、現在では英語版だけでも670万本以上の記事が掲載され、"
                            "毎月数十億回の閲覧数を誇る世界最大の参考情報サイトとなっています。")

# 段落の配置を中央揃えにします
para.Format.HorizontalAlignment = HorizontalAlignment.Center

# テキストのフォントを設定します
textRange.CharacterFormat.FontName = "Calibri"
textRange.CharacterFormat.FontSize = 11.0
textRange.CharacterFormat.Italic = True  # 斜体

# 結果をファイルに保存します
document.SaveToFile("output/テキストボックスの挿入.docx")
document.Close()

Pythonを使ってWordにテキストボックスを挿入

Python で Word 文書からテキスト ボックスを削除する

Spire.Doc for Python では、Document.TextBoxes.RemoveAt(int index) メソッドを使用して、指定したテキスト ボックスを削除できます。文書内のすべてのテキスト ボックスを一括で削除したい場合は、Document.TextBoxes.Clear() メソッドを使用します。以下は、最初のテキスト ボックスを削除する例です。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.TextBoxes.RemoveAt(int index) メソッドを使用して、最初のテキスト ボックスを削除します。
  • Document.SaveToFile() メソッドで、編集済みの文書を別ファイルとして保存します。
  • Python
from spire.doc import Document

# Documentオブジェクトを作成します
document = Document()

# Word文書を読み込みます
document.LoadFromFile("output/テキストボックスの挿入.docx")

# 最初のテキストボックスを削除します
document.TextBoxes.RemoveAt(0)

# すべてのテキストボックスを削除する場合(コメントを外して使用):
# document.TextBoxes.Clear()

# 結果の文書を保存します
document.SaveToFile("output/テキストボックスの削除.docx")
document.Close()

Spire.Docを使ってWordからテキストボックスを削除

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

現代のワークフローでは、データ分析は Excel で行われ、最終的なレポートは Word で作成されることが一般的です。しかし、データを手動でコピー&ペーストすると、エラーやバージョンの不整合、書式の乱れが発生する可能性があります。Python を活用した自動化により、Excel のデータ処理機能と Word のフォーマット機能をシームレスに統合でき、データの整合性を確保しながら作業の効率を向上させることが可能です。本記事では、Spire.Office for Python を使用して、Python コードで Excel の表を Word 文書に挿入する方法を解説します。

Spire.Office for Python のインストール

この操作には、Spire.Office for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Office for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Excel のデータを読み込み Word 文書に挿入する

Spire.XLS for Python を使用すると、Excel ワークシートから数値書式を保持したままデータを抽出できます(CellRange.NumberText プロパティを使用)。抽出したデータを、Spire.Doc for Python を使用して Word の表に挿入できます。この方法は、単純な Excel ワークシートや、Word で書式を変更する必要があるケースに適しています。

Excel のデータを読み込み Word に挿入する手順

  • Workbook クラスのインスタンスを作成し、Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。
  • Workbook.Worksheets.get_Item() メソッドでワークシートを取得し、Worksheet.AllocatedRange プロパティで使用範囲を取得します。
  • Document クラスのインスタンスを作成し、新しい Word 文書を作成します。
  • Document.AddSection() メソッドでセクションを追加し、Section.AddTable() メソッドで表を挿入します。
  • Table.ResetCells() メソッドを使用して、使用範囲の行数と列数を定義します。
  • 使用範囲の行と列をループ処理します。
  • Table.Rows.get_Item().Cells.get_Item() メソッドで表のセルを取得し、TableCell.AddParagraph() メソッドで段落を追加します。
  • CellRange.get_Item().NumberText プロパティでセルの値を取得し、Paragraph.AppendText() メソッドで段落に追加します。
  • Word の表に必要な書式設定を適用します。
  • Document.SaveToFile() メソッドで Word 文書を保存します。
  • Python
from spire.doc import Document, AutoFitBehaviorType, FileFormat, DefaultTableStyle
from spire.xls import Workbook

# ファイル名を指定します
excel_file = "Sample.xlsx"
word_file = "output/ExcelDataToWord.docx"

# Workbook インスタンスを作成します
workbook = Workbook()
# Excel ファイルを読み込みます
workbook.LoadFromFile(excel_file)

# 最初のワークシートを取得します
sheet = workbook.Worksheets.get_Item(0)
# 最初のワークシートで使用されているセル範囲を取得します
allocatedRange = sheet.AllocatedRange

# Document インスタンスを作成します
doc = Document()

# 文書にセクションを追加し、そのセクションに表を追加します
section = doc.AddSection()
table = section.AddTable()

# Word の表の行数と列数を Excel のワークシートと同じにリセットします
table.ResetCells(allocatedRange.RowCount, allocatedRange.ColumnCount)

# 使用されているセル範囲の各行と各列をループ処理します
for rowIndex in range(allocatedRange.RowCount):
    # 行内の各列をループ処理します
    for colIndex in range(allocatedRange.ColumnCount):
        # Word の表にセルを追加し、そのセルに段落を追加します
        cell = table.Rows.get_Item(rowIndex).Cells.get_Item(colIndex)
        paragraph = cell.AddParagraph()
        # セルの値を Word の表に追加し、フォントを設定します
        textRange = paragraph.AppendText(allocatedRange.get_Item(rowIndex + 1, colIndex + 1).NumberText)
        textRange.CharacterFormat.FontName = "Yu Gothic UI"

# 表のサイズをウィンドウに合わせて自動調整し、表のスタイルを適用します
table.AutoFit(AutoFitBehaviorType.AutoFitToWindow)
table.ApplyStyle(DefaultTableStyle.GridTable1LightAccent6)

# Word 文書を保存します
doc.SaveToFile(word_file, FileFormat.Docx2019)

# リソースを解放します
doc.Dispose()
workbook.Dispose()

Spire.DocでExcelデータを読み込み、Word文書の表に書き込む

Excel のデータと書式を Word にコピーする

Spire.XLS for Python と Spire.Doc for Python を併用すると、Excel のデータと書式の両方を Word にコピーし、表の構造と外観を保持できます。

書式を保持するために必要な補助メソッド

  • MergeCells: Excel ワークシートの結合セルに基づいて、Word の表のセルを結合します。
  • CopyFormatting: Excel のセルの書式(フォントスタイル、背景色、水平および垂直方向の配置)を Word の表に適用します。

データと書式をコピーする手順

  • Workbook クラスのインスタンスを作成し、Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets.get_Item() メソッドでワークシートを取得します。
  • Document クラスのインスタンスを作成し、Document.AddSection() メソッドでセクションを追加します。
  • Section.AddTable() メソッドで表を挿入します。
  • Table.ResetCells() メソッドを使用し、ワークシートの構造に基づいて表の構造を調整します。
  • MergeCells() メソッドを使用してセルの結合を適用します。
  • 各行をループ処理し、Table.Rows.get_Item().Height プロパティを使用して行の高さを設定します。
  • 各列の処理:
    • Worksheet.Range.get_Item() メソッドで Excel のセルを取得し、TableRow.Cells.get_Item() メソッドで Word のセルを取得します。
    • CellRange.NumberText プロパティでデータを取得し、TableCell.AddParagraph().AppendText() メソッドで Word のセルに追加します。
    • CopyFormatting() メソッドで書式を適用します。
  • Document.SaveToFile() メソッドで Word 文書を保存します。
  • Python
from spire.xls import Workbook, HorizontalAlignType, ExcelPatternType, VerticalAlignType
from spire.doc import Document, Color, HorizontalAlignment, VerticalAlignment, PageOrientation, FileFormat


def MergeCells(worksheet, wordTable):
    # セルの結合があるか確認します
    if not worksheet.HasMergedCells:
        return
    for cell_range in worksheet.MergedCells:
        start_row, start_col = cell_range.Row, cell_range.Column
        row_count, col_count = cell_range.RowCount, cell_range.ColumnCount
        # 横方向の結合を処理します
        if col_count > 1:
            for row in range(start_row, start_row + row_count):
                wordTable.ApplyHorizontalMerge(row - 1, start_col - 1, start_col - 1 + col_count - 1)
        # 縦方向の結合を処理します
        if row_count > 1:
            wordTable.ApplyVerticalMerge(start_col - 1, start_row - 1, start_row - 1 + row_count - 1)


def CopyFormatting(tableTextRange, excelCell, wordCell):
    # フォントスタイルをコピーします
    font = excelCell.Style.Font
    tableTextRange.CharacterFormat.TextColor = Color.FromRgb(font.Color.R, font.Color.G, font.Color.B)
    tableTextRange.CharacterFormat.FontSize = float(font.Size)
    tableTextRange.CharacterFormat.FontName = font.FontName
    tableTextRange.CharacterFormat.Bold = font.IsBold
    tableTextRange.CharacterFormat.Italic = font.IsItalic
    # 背景色をコピーします
    if excelCell.Style.FillPattern != ExcelPatternType.none:
        wordCell.CellFormat.BackColor = Color.FromRgb(excelCell.Style.Color.R, excelCell.Style.Color.G,
                                                      excelCell.Style.Color.B)
    # 横方向の配置をコピーします
    hAlignMap = {
        HorizontalAlignType.Left: HorizontalAlignment.Left,
        HorizontalAlignType.Center: HorizontalAlignment.Center,
        HorizontalAlignType.Right: HorizontalAlignment.Right
    }
    if excelCell.HorizontalAlignment in hAlignMap:
        tableTextRange.OwnerParagraph.Format.HorizontalAlignment = hAlignMap[excelCell.HorizontalAlignment]
    # 縦方向の配置をコピーします
    vAlignMap = {
        VerticalAlignType.Top: VerticalAlignment.Top,
        VerticalAlignType.Center: VerticalAlignment.Middle,
        VerticalAlignType.Bottom: VerticalAlignment.Bottom
    }
    if excelCell.VerticalAlignment in vAlignMap:
        wordCell.CellFormat.VerticalAlignment = vAlignMap[excelCell.VerticalAlignment]

# ファイル名を指定します
excelFileName = "Sample.xlsx"
wordFileName = "output/ExcelDataFormatToWord.docx"

# Workbook インスタンスを作成し、Excel ファイルを読み込みます
workbook = Workbook()
workbook.LoadFromFile(excelFileName)

# ワークシートを取得します
sheet = workbook.Worksheets.get_Item(0)

# Document インスタンスを作成します
doc = Document()
# 文書にセクションを追加し、ページの向きを設定します
section = doc.AddSection()
section.PageSetup.Orientation = PageOrientation.Landscape

# セクションに表を追加します
table = section.AddTable()
# Word の表の行数と列数を Excel のワークシートと同じに設定します
table.ResetCells(sheet.LastRow, sheet.LastColumn)

# MergeCells メソッドを実行してセルを結合します
MergeCells(sheet, table)

# Excel のワークシート内の各行と各列をループ処理します
for r in range(1, sheet.LastRow + 1):
    tableRow = table.Rows.get_Item(r - 1)
    tableRow.Height = float(sheet.Rows.get_Item(r - 1).RowHeight)
    for c in range(1, sheet.LastColumn + 1):
        # Excel の対応するセルと Word の表のセルを取得します
        eCell = sheet.Range.get_Item(r, c)
        wCell = table.Rows.get_Item(r - 1).Cells.get_Item(c - 1)
        # セルの値を Word の表に追加します
        textRange = wCell.AddParagraph().AppendText(eCell.NumberText)
        # セルの書式をコピーします
        CopyFormatting(textRange, eCell, wCell)

# Word 文書を保存します
doc.SaveToFile(wordFileName, FileFormat.Docx2019)
doc.Dispose()
workbook.Dispo

Pythonを使ってExcelワークシートのデータと書式をWord文書にコピー

Excel ワークシートを OLE オブジェクトとして Word に統合する

データと書式のコピーに加え、Excel ワークシートを OLE オブジェクトとして Word に埋め込むこともできます。この方法を使用すると、Excel のワークシートを完全な形式で表示できるだけでなく、Word 文書内で直接編集することも可能になります。

Spire.Doc for Python の Paragraph.AppendOleObject(str: filename, DocPicture, OleObjectType.ExcelWorksheet) メソッドを使用すると、Excel ファイルを簡単に OLE オブジェクトとして挿入できます。

Excel ワークシートを OLE オブジェクトとして挿入する手順

  • Workbook クラスのインスタンスを作成し、Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets.get_Item() メソッドでワークシートを取得し、Worksheet.ToImage().Save() メソッドを使用して画像として保存します。
  • Document クラスのインスタンスを作成し、Word 文書を作成します。
  • Document.AddSection() メソッドでセクションを追加し、Section.AddParagraph() メソッドで段落を挿入します。
  • DocPicture クラスのインスタンスを作成し、DocPicture.LoadImage() メソッドで保存した画像を読み込みます。
  • DocPicture.Width プロパティでページレイアウトに合わせて画像サイズを調整します。
  • Paragraph.AppendOleObject() メソッドで Excel ファイルを OLE オブジェクトとして挿入します。
  • DocOleObject.DisplayAsIcon プロパティを False に設定し、ワークシートの編集後に動的に更新されるようにします。
  • Document.SaveToFile() メソッドで Word 文書を保存します。
  • Python
from spire.doc import Document, DocPicture, FileFormat, OleObjectType
from spire.xls import Workbook

# ファイルパスとファイル名を指定します
excelFileName = "Sample.xlsx"
wordFileName = "output/ExcelOleToWord.docx"
tempImageName = "SheetImage.png"

# Workbook インスタンスを作成し、Excel ファイルを読み込みます
workbook = Workbook()
workbook.LoadFromFile(excelFileName)

# 最初のワークシートを画像として保存します
sheet = workbook.Worksheets.get_Item(0)
sheet.ToImage(1, 1, sheet.LastRow, sheet.LastColumn).Save(tempImageName)

# Word 文書を作成するために Document インスタンスを初期化します
doc = Document()
# 文書にセクションを追加し、そのセクションに段落を追加します
section = doc.AddSection()
paragraph = section.AddParagraph()

# DocPicture インスタンスを作成し、画像を読み込みます
pic = DocPicture(doc)
pic.LoadImage(tempImageName)

# 画像の幅を設定します
pic.Width = section.PageSetup.PageSize.Width - section.PageSetup.Margins.Left - section.PageSetup.Margins.Right

# Excel ファイルを OLE オブジェクトとして Word 文書に挿入し、保存した画像を表示用に設定します
ole = paragraph.AppendOleObject(excelFileName, pic, OleObjectType.ExcelWorksheet)
# OLE オブジェクトをアイコンとして表示しないように設定します
ole.DisplayAsIcon = False

# Word 文書を保存します
doc.SaveToFile(wordFileName, FileFormat.Docx2019)
workbook.Dispose()
doc.Dispose()

PythonでExcelワークシートをOLEオブジェクトとしてWord文書に挿入

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Excel ワークシートでは、生データが単なる数値として表示されることが多く、直感的に理解しづらい場合があります。数値書式を設定することで、これらの数値をより分かりやすい形式に変換できます。たとえば、売上データを通貨形式に設定すると、通貨記号や桁区切り記号が追加され、一目で金額を把握できるようになります。また、市場シェアデータをパーセンテージ形式に設定することで、各部分の割合が明確になり、迅速な比較や分析が可能になります。本記事では、Spire.XLS for .NET を使用して C# で Excel セルの数値書式を設定する方法を解説します。

Spire.XLS for .NET をインストールします

まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.XLS

Excel の数値書式における記号

Excel の数値書式コードでは、数値の表示方法を定義するためにさまざまな記号が使用されます。以下に、一般的な記号の詳細な説明を示します。

記号 説明
0 必須の数字プレースホルダー。必要に応じてゼロで埋められます。
# 任意の数字プレースホルダー。意味のないゼロは表示されません。
? 任意の数字プレースホルダー。小数点の位置を揃えるためにスペースが追加され、小数の末尾にゼロが補われることがあります。
. 小数点を表します。
, 桁区切り記号として使用されます。
; 正、負、ゼロ、およびテキストの各値に対する書式コードのセクションを区切ります。
% 数値を100倍し、パーセント記号を追加します。
E - + 指数表記(科学技術表記)を示します。
通貨記号($, €, ¥ など) 対応する通貨記号を表示します。
[Color] 数値の表示に色を指定します。
日付/時刻(yyyy, mmmm, mm, dd, hh, ss, AM/PM) それぞれ年、月(完全名)、月、日、時、分、秒、および12時間制の指標を表します。

C# で Excel セルの数値書式を設定する

Spire.XLS for .NET では、CellRange.NumberValue プロパティを使用してセルの数値を設定し、CellRange.NumberFormat プロパティを使用して数値書式コードを設定できます。詳細な手順は以下のとおりです。

  • Workbook インスタンスを作成します。
  • Workbook.Worksheets[] プロパティを使用して、指定のワークシートを取得します。
  • Worksheet.Range[] プロパティを使用して、指定のセルを取得します。
  • CellRange.Text プロパティを使用して、指定のセルにテキストを追加します。
  • CellRange.NumberValue プロパティを使用して、指定のセルに数値を追加し、その後、CellRange.NumberFormat プロパティを使用して数値書式を設定します。
  • Workbook.SaveToFile() メソッドを使用して、結果のファイルを保存します。
  • C#
using Spire.Xls;

namespace SetNumberFormat
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbook インスタンスを作成
            Workbook workbook = new Workbook();

            // 最初のワークシートを取得
            Worksheet sheet = workbook.Worksheets[0];

            // 指定したセルにテキストを追加し、セルのスタイルを設定
            sheet.Range["B3"].Text = "値";
            sheet.Range["C3"].Text = "数値書式";
            sheet.Range["D3"].Text = "表示";
            sheet.Range["E3"].Text = "備考";
            sheet.Range["B3:E3"].Style.Font.IsBold = true;
            sheet.Range["B3:E3"].Style.KnownColor = ExcelColors.SkyBlue;

            // ゼロパディングされた数値
            sheet.Range["B4"].Text = "123";
            sheet.Range["C4"].Text = "0000";
            sheet.Range["D4"].NumberValue = 123;
            sheet.Range["D4"].NumberFormat = "0000";
            sheet.Range["E4"].Text = "ゼロパディングされた数値";

            // 千位区切り付き小数点2桁の数値
            sheet.Range["B5"].Text = "1234.5678";
            sheet.Range["C5"].Text = "#,##0.00";
            sheet.Range["D5"].NumberValue = 1234.5678;
            sheet.Range["D5"].NumberFormat = "#,##0.00";
            sheet.Range["E5"].Text = "千位区切り付き小数点2桁の数値";

            // 赤色で表示される負の数
            sheet.Range["B6"].Text = "-1234.5678";
            sheet.Range["C6"].Text = "0;[Red]-0";
            sheet.Range["D6"].NumberValue = -1234.5678;
            sheet.Range["D6"].NumberFormat = "0;[Red]-0";
            sheet.Range["E6"].Text = "赤色で表示される負の数";

            // 小数点1桁のパーセンテージ
            sheet.Range["B7"].Text = "0.12345";
            sheet.Range["C7"].Text = "0.0%";
            sheet.Range["D7"].NumberValue = 0.12345;
            sheet.Range["D7"].NumberFormat = "0.0%";
            sheet.Range["E7"].Text = "小数点1桁のパーセンテージ";

            // テキスト付き数値
            sheet.Range["B8"].Text = "1234.5678";
            sheet.Range["C8"].Text = "\"数量: \"0";
            sheet.Range["D8"].NumberValue = 1234.5678;
            sheet.Range["D8"].NumberFormat = "\"数量: \"0";
            sheet.Range["E8"].Text = "テキスト付き数値";

            // 通貨記号付き数値
            sheet.Range["B9"].Text = "1234.5678";
            sheet.Range["C9"].Text = "$#,##0.00";
            sheet.Range["D9"].NumberValue = 1234.5678;
            sheet.Range["D9"].NumberFormat = "$#,##0.00";
            sheet.Range["E9"].Text = "通貨記号付き数値";

            // 指数表記
            sheet.Range["B10"].Text = "1234.5678";
            sheet.Range["C10"].Text = "0.00E+00";
            sheet.Range["D10"].NumberValue = 1234.5678;
            sheet.Range["D10"].NumberFormat = "0.00E+00";
            sheet.Range["E10"].Text = "指数表記";

            // 分数表記
            sheet.Range["B11"].Text = "0.5";
            sheet.Range["C11"].Text = "# ?/?";
            sheet.Range["D11"].NumberValue = 0.5;
            sheet.Range["D11"].NumberFormat = "# ?/?";
            sheet.Range["E11"].Text = "分数表記";

            // 日付
            sheet.Range["B12"].Text = "45930";
            sheet.Range["C12"].Text = "yyyy-MM-dd";
            sheet.Range["D12"].NumberValue = 45930;
            sheet.Range["D12"].NumberFormat = "yyyy-MM-dd";
            sheet.Range["E12"].Text = "日付";

            // 時刻
            sheet.Range["B13"].Text = "0.5";
            sheet.Range["C13"].Text = "h:mm:ss AM/PM";
            sheet.Range["D13"].NumberValue = 0.5;
            sheet.Range["D13"].NumberFormat = "h:mm:ss AM/PM";
            sheet.Range["E13"].Text = "時刻";

            // 使用範囲のセルスタイルを設定
            sheet.AllocatedRange.Style.Font.FontName = "Calibri";
            sheet.AllocatedRange.Style.Font.Size = 11;
            sheet.AllocatedRange.Style.HorizontalAlignment = HorizontalAlignType.Left;

            // 列幅を自動調整
            sheet.AutoFitColumn(2);
            sheet.AutoFitColumn(3);
            sheet.AutoFitColumn(4);
            sheet.AutoFitColumn(5);

            // 結果ファイルを保存
            workbook.SaveToFile("output/Excelセルの数値書式.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

Customize Number Format of Excel Cells Using Spire.XLS for .Net with C#

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word 文書の脚注は、文書の内容を補足し、参考情報や引用を提供するための便利な機能です。脚注を利用することで、複雑な概念の詳細な説明を追加したり、主張を裏付ける出典を明示したり、読者にとって興味深い補足情報を提示したりできます。学術論文や書籍、その他の引用や説明を要する文書を作成する際に、脚注はレイアウトをすっきりと保ちながら補足情報を提供するのに役立ちます。本記事では、Spire.Doc for 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 で特定の段落に脚注を挿入する

Spire.Doc for Python が提供する Paragraph.AppendFootnote(FootnoteType.Footnote) メソッドを使用すると、特定の段落に簡単に脚注を追加できます。手順は以下の通りです。

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Section[int] プロパティを用いて特定のセクションを取得し、Section.Paragraphs[int] プロパティを使ってセクション内の特定の段落を取得します。
  • Paragraph.AppendFootnote(FootnoteType.Footnote) メソッドを使用して、段落の末尾に脚注を追加します。
  • 脚注の本文を設定し、脚注のテキストおよび参照マークのフォントや色を調整します。
  • Document.SaveToFile() メソッドを使用して、結果の文書を保存します。
  • Python
from spire.doc import *
from spire.doc.common import *

# ドキュメントインスタンスを作成
document = Document()
# サンプルのWordドキュメントを読み込む
document.LoadFromFile("Sample.docx")

# 最初のセクションを取得
section = document.Sections.get_Item(0)

# セクション内の指定された段落を取得
paragraph = section.Paragraphs.get_Item(5)

# 段落の最後に脚注を追加
footnote = paragraph.AppendFootnote(FootnoteType.Footnote)

# 脚注のテキストコンテンツを設定
text = footnote.TextBody.AddParagraph().AppendText("Agrawal, A., Gans, J., & Goldfarb, A. (2018). 予測マシン: 人工知能の簡単な経済学。")

# テキストのフォントと色を設定
text.CharacterFormat.FontName = "Yu Mincho"
text.CharacterFormat.FontSize = 12
text.CharacterFormat.TextColor = Color.get_DarkBlue()

# 脚注参照マークのフォントと色を設定
footnote.MarkerCharacterFormat.FontName = "Calibri"
footnote.MarkerCharacterFormat.FontSize = 15
footnote.MarkerCharacterFormat.Bold = True
footnote.MarkerCharacterFormat.TextColor = Color.get_DarkCyan()

# 結果のドキュメントを保存
document.SaveToFile("output/Wordの段落に脚注を挿入.docx")
document.Close()

Spire.DocでWord文書の段落に脚注を挿入

Python で特定のテキストに脚注を挿入する

特定のテキストに脚注を追加する場合は、文書内の該当テキストを検索し、そのテキストが属する段落内の位置を取得した後に、脚注を挿入します。手順は以下の通りです。

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.FindString() メソッドを使って特定のテキストを検索します。
  • TextSelection.GetAsOneRange() メソッドを使用して、検索結果を 1 つのテキスト範囲として取得します。
  • TextRange.OwnerParagraph プロパティを利用して、テキスト範囲が属する段落を取得します。
  • Paragraph.ChildObjects.IndexOf() メソッドを使用して、段落内でのテキスト範囲の位置を特定します。
  • Paragraph.AppendFootnote(FootnoteType.Footnote) メソッドで脚注を追加し、Paragraph.ChildObjects.Insert() メソッドで特定のテキストの後に脚注を挿入します。
  • 脚注の本文を設定し、脚注のテキストおよび参照マークのフォントや色を調整します。
  • Document.SaveToFile() メソッドを使用して、結果の文書を保存します。
  • Python
from spire.doc import *
from spire.doc.common import *

# ドキュメントインスタンスを作成
document = Document()
# サンプルのWordドキュメントを読み込む
document.LoadFromFile("Sample.docx")

# 特定のテキストを検索
selection = document.FindString("アルゴリズムのバイアス", False, True)

# 検索したテキストを1つのテキスト範囲として取得
textRange = selection.GetAsOneRange()

# テキスト範囲が存在する段落を取得
paragraph = textRange.OwnerParagraph

# 段落内でのテキスト範囲のインデックス位置を取得
index = paragraph.ChildObjects.IndexOf(textRange)

# 段落に脚注を追加
footnote = paragraph.AppendFootnote(FootnoteType.Footnote)

# テキスト範囲の後に脚注を挿入
paragraph.ChildObjects.Insert(index + 1, footnote)

# 脚注のテキストコンテンツを設定
text = footnote.TextBody.AddParagraph().AppendText("アルゴリズムのバイアス: AIシステムがデータに基づいて判断を下す際に、特定の偏りが生じる現象。これにより、誤った結果や不公平な結果が生じることがあります。")

# テキストのフォントと色を設定
text.CharacterFormat.FontName = "Yu Mincho"
text.CharacterFormat.FontSize = 12
text.CharacterFormat.TextColor = Color.get_DarkBlue()

# 脚注参照マークのフォントと色を設定
footnote.MarkerCharacterFormat.FontName = "Calibri"
footnote.MarkerCharacterFormat.FontSize = 15
footnote.MarkerCharacterFormat.Bold = True
footnote.MarkerCharacterFormat.TextColor = Color.get_DarkGreen()

# 結果のドキュメントを保存
document.SaveToFile("output/Wordのテキストに脚注を挿入.docx")
document.Close()

PythonでWord文書のテキストに脚注を挿入

Python で Word 文書の脚注を削除する

不要になった脚注を削除することで、文書をより整理された状態にできます。脚注を削除する手順は以下の通りです。

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Sections[int] プロパティを使って特定のセクションを取得します。
  • 取得したセクション内の各段落をループ処理し、脚注を検索します。
  • Paragraph.ChildObjects.RemoveAt() メソッドを使用して脚注を削除します。
  • Document.SaveToFile() メソッドを使用して、結果の文書を保存します。
  • Python
from spire.doc import *
from spire.doc.common import *

# ドキュメントインスタンスを作成
document = Document()
# サンプルのWordドキュメントを読み込む
document.LoadFromFile("output/Wordの段落に脚注を挿入.docx")

# ドキュメントの最初のセクションを取得
section = document.Sections.get_Item(0)

# セクション内の段落をループ処理
for y in range(section.Paragraphs.Count):
    para = section.Paragraphs.get_Item(y)
    index = -1
    i = 0
    cnt = para.ChildObjects.Count
    while i < cnt:
        pBase = para.ChildObjects.get_Item(i) if isinstance(para.ChildObjects.get_Item(i), ParagraphBase) else None
        if isinstance(pBase, Footnote):
            index = i
            break
        i += 1
    if index > -1:
        # 段落から脚注を削除
        para.ChildObjects.RemoveAt(index)

# 結果のドキュメントを保存
document.SaveToFile("output/Wordの脚注を削除.docx")
document.Close()

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word 文書を扱う際、ハイパーリンクを一括抽出することは実用的な用途が多くあります。技術文書や製品マニュアルから手動で URL を抽出するのは非効率であり、抜けや誤りが発生しやすいです。これを解決するため、本記事では C# を使用し、文書要素を解析することでハイパーリンクのアンカーテキスト、対応する URL、およびヒントを正確に抽出する自動化ソリューションを紹介します。抽出したハイパーリンクデータは、データ分析、SEO 最適化などの用途に活用できます。

以下のセクションでは、Spire.Doc for .NET を使用して C# で Word 文書からハイパーリンクを抽出する方法を解説します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

C# で Word 文書内のすべてのハイパーリンクを抽出する

Word 文書では、ハイパーリンクはフィールドとして格納されています。これを抽出するには、まずすべてのフィールドオブジェクトを特定し、それぞれのオブジェクトが Field クラスのインスタンスであるかを確認します。その後、Field オブジェクトの Type プロパティが FieldType.FieldHyperlink に等しいかをチェックすることで、ハイパーリンクフィールドを抽出できます。

ハイパーリンクを特定した後、Field.FieldText プロパティを使用してハイパーリンクのアンカーテキストを取得し、Field.GetFieldCode() メソッドを使用して以下の形式のフィールドコードを取得できます。

ハイパーリンクの種類 フィールドコードの例
標準ハイパーリンク HYPERLINK "https://www.example.com/example"
ヒント付きハイパーリンク HYPERLINK "https://www.example.com/example" \o "ScreenTip"

フィールドコードを解析することで、ハイパーリンクの URL とヒントのテキストを取得でき、完全なハイパーリンク情報を抽出できます。

C# を使用して Word 文書からすべてのハイパーリンクを抽出する手順

  • Document オブジェクトを作成し、Document.LoadFromFile() メソッドを使用して対象の Word 文書を読み込みます。
  • foreach (Section section in doc.Sections) を使用して、文書内のすべてのセクションを反復処理し、各 Section オブジェクトを取得します。
  • 各セクションの子オブジェクトを foreach (DocumentObject secObj in section.Body.ChildObjects) で反復処理し、個々の要素にアクセスします。
  • 子オブジェクトが Paragraph 型の場合:
    • 段落内の子オブジェクトを foreach (DocumentObject paraObj in paragraph.ChildObjects) で反復処理します。
  • 段落の子オブジェクトが Field 型であり、その Field.Type プロパティの値が FieldType.FieldHyperlink に等しい場合、Field オブジェクトを処理します。
  • Field オブジェクトに対して:
    • Field.FieldText プロパティを使用してアンカーテキストを抽出します。
    • Field.GetFieldCode() メソッドを使用してフィールドコード文字列を取得します。
  • フィールドコード文字列を解析します:
    • "HYPERLINK" の後にある二重引用符内の URL を抽出します。
    • フィールドコードに \o パラメータが含まれているかを確認し、存在する場合は二重引用符内のヒントテキストを抽出します。
  • 抽出したハイパーリンクを保存し、出力ファイルに書き込みます。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace ExtractWordHyperlink
{
    class Program
    {
        static void Main(string[] args)
        {
            // ドキュメントのインスタンスを作成
            Document doc = new Document();
            // Word ドキュメントを読み込む
            doc.LoadFromFile("Sample.docx");

            // ハイパーリンク情報を格納するための文字列リストを作成
            List<string> hyperlinkInfoList = new List<string>();

            // ドキュメント内のセクションを反復処理
            foreach (Section section in doc.Sections)
            {
                // セクション内の子オブジェクトを反復処理
                foreach (DocumentObject secObj in section.Body.ChildObjects)
                {
                    // 現在のドキュメントオブジェクトが段落インスタンスか確認
                    if (secObj is Paragraph paragraph)
                    {
                        // 段落内の子オブジェクトを反復処理
                        foreach (DocumentObject paraObj in paragraph.ChildObjects)
                        {
                            // 現在の子オブジェクトがフィールドか確認
                            if (paraObj is Field field && field.Type == FieldType.FieldHyperlink)
                            {
                                string hyperlinkInfo = "";
                                // アンカーテキストを取得
                                string anchorText = field.FieldText;

                                // フィールドコードを取得
                                string fieldCode = field.GetFieldCode();
                                // フィールドコードからURLを取得
                                string url = fieldCode.Split('"')[1];
                                // ScreenTip があるか確認
                                if (fieldCode.Contains("\\o"))
                                {
                                    // ヒント テキストを取得
                                    string screenTip = fieldCode.Split("\"")[3].Trim();
                                    // 情報を統合
                                    hyperlinkInfo += $"アンカーテキスト: {anchorText}\nURL: {url}\nヒント: {screenTip}";
                                }
                                else
                                {
                                    hyperlinkInfo += $"アンカーテキスト: {anchorText}\nURL: {url}";
                                }
                                hyperlinkInfo += "\n";
                                // ハイパーリンク情報をリストに追加
                                hyperlinkInfoList.Add(hyperlinkInfo);
                            }
                        }
                    }
                }
            }

            // 抽出したハイパーリンク情報をテキストファイルに書き込む
            File.WriteAllLines("output/抽出したハイパーリンク.txt", hyperlinkInfoList);

            doc.Close();
        }
    }
}

C#でWord文書から抽出したハイパーリンク

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word のヘッダーとフッターは、各ページの上部および下部の余白に配置されるセクションです。これには、ページ番号、文書タイトル、日付、作成者名などの情報を追加できます。通常、すべてのページで同じヘッダーやフッターが適用されますが、特定のシナリオでは、最初のページ、奇数ページ、偶数ページに異なるヘッダーやフッターを挿入することも可能です。本記事では、Spire.Doc for Python を使用して、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 文書にヘッダーやフッターを挿入するには、まず Section.HeadersFooters.Header または Section.HeadersFooters.Footer プロパティを取得し、それに段落を追加して、画像やテキスト、ページ番号、日付などを挿入します。

ヘッダーとフッターを追加する手順

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Sections.get_Item() メソッドを使用して、対象のセクションを取得します。
  • ヘッダーを追加する
    • Section.HeadersFooters.Header プロパティを使用してヘッダーを取得します。
    • HeaderFooter.AddParagraph() メソッドで段落を追加し、段落の配置を設定します。
    • Paragraph.AppendPicture() メソッドで画像を追加し、画像の折り返しスタイルや位置を設定します。
    • Paragraph.AppendText() メソッドでテキストを追加し、フォント名、サイズ、色などを設定します。
  • フッターを追加する
    • Section.HeadersFooters.Footer プロパティを使用してフッターを取得します。
    • フッターに段落を追加し、テキストを挿入します。
    • Paragraph.Format.Borders プロパティを使用してフッターの枠線を取得し、上部の罫線スタイルや間隔を設定します。
  • Document.SaveToFile() メソッドを使用して、変更後の文書を保存します。
  • Python
from spire.doc import Document, HorizontalAlignment, TextWrappingStyle, VerticalOrigin, ShapeVerticalAlignment, Color, BorderStyle

# Document オブジェクトを作成します
document = Document()

# Word 文書を読み込みます
document.LoadFromFile("Sample.docx")

# 最初のセクションを取得します
section = document.Sections.get_Item(0)

# ヘッダーを取得します
header = section.HeadersFooters.Header

# ヘッダーに段落を追加し、配置スタイルを設定します
headerParagraph = header.AddParagraph()
headerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Left

# ヘッダーの段落に画像を追加し、折り返しスタイルと位置を設定します
headerPicture = headerParagraph.AppendPicture("Logo.png")
headerPicture.TextWrappingStyle = TextWrappingStyle.Square
headerPicture.VerticalOrigin = VerticalOrigin.Paragraph
headerPicture.VerticalAlignment = ShapeVerticalAlignment.Center

# ヘッダーの段落にテキストを追加し、フォントスタイルを設定します
text = headerParagraph.AppendText("Spire.Doc for Python\nPython 用 Word 文書処理マスター")
text.CharacterFormat.FontName = "Yu Gothic UI"
text.CharacterFormat.FontSize = 10
text.CharacterFormat.Bold = True
text.CharacterFormat.TextColor = Color.get_Blue()

# フッターを取得します
footer = section.HeadersFooters.Footer

# フッターに段落を追加し、配置スタイルを設定します
footerParagraph = footer.AddParagraph()
footerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center

# フッターの段落にテキストを追加し、フォントスタイルを設定します
text = footerParagraph.AppendText("Copyright © 2013 e-iceblue. すべての権利を保有。")
text.CharacterFormat.FontName = "Yu Gothic UI"
text.CharacterFormat.FontSize = 10

# フッターの段落に罫線を設定します
footerParagraph.Format.Borders.Top.BorderType = BorderStyle.Single
footerParagraph.Format.Borders.Top.Space = 0.05

# 結果のファイルを保存します
document.SaveToFile("output/Wordのヘッダーとフッター.docx")
document.Close()

PythonでWord文書にヘッダーとフッターを挿入

最初のページと他のページで異なるヘッダー・フッター

最初のページのみにヘッダーやフッターを追加する場合、または最初のページとそれ以外のページで異なるヘッダーやフッターを設定したい場合があります。

Spire.Doc for Python では、Section.PageSetup.DifferentFirstPageHeaderFooter プロパティを使用することで、最初のページ専用のヘッダーやフッターを設定できます。以下の手順で実装できます。

最初のページとその他のページで異なるヘッダー・フッターを設定する手順

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.Sections.get_Item() メソッドを使用して、対象のセクションを取得します。
  • Section.PageSetup.DifferentFirstPageHeaderFooter プロパティを True に設定し、最初のページのヘッダー・フッターを有効化します。
  • Section.HeadersFooters.FirstPageHeader プロパティを使用して最初のページのヘッダーを取得します。
  • 段落を追加し、画像を挿入します。
  • Section.HeadersFooters.FirstPageFooter プロパティを使用して最初のページのフッターを取得します。
  • 段落を追加し、テキストを挿入します。
  • その他のページのヘッダー・フッターを設定します。(最初のページのみにヘッダー・フッターを追加する場合は、この手順は不要です。)
  • Document.SaveToFile() メソッドで保存します。
  • Python
from spire.doc import Document, HorizontalAlignment, Color, BorderStyle

# Document オブジェクトを作成します
doc = Document()

# Word 文書を読み込みます
doc.LoadFromFile("Sample.docx")

# 最初のセクションを取得します
section = doc.Sections.get_Item(0)

# 先頭ページとその他のページで異なるヘッダーとフッターを有効にします
section.PageSetup.DifferentFirstPageHeaderFooter = True

# 先頭ページのヘッダーに段落を追加し、配置スタイルを設定します
headerParagraph = section.HeadersFooters.FirstPageHeader.AddParagraph()
headerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Right

# ヘッダーの段落に画像を追加します
headerImage = headerParagraph.AppendPicture("Logo1.png")

# 先頭ページのフッターに段落を追加し、配置スタイルを設定します
footerParagraph = section.HeadersFooters.FirstPageFooter.AddParagraph()
footerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center

# フッターの段落にテキストを追加し、フォントスタイルを設定します
text = footerParagraph.AppendText("異なる最初のページのフッター")
text.CharacterFormat.FontSize = 11
text.CharacterFormat.FontName = "Yu Gothic UI"

# その他のページのヘッダーとフッターを設定します
# 先頭ページのみヘッダーとフッターを設定する場合、この処理は不要です
para = section.HeadersFooters.Header.AddParagraph()
para.Format.HorizontalAlignment = HorizontalAlignment.Left
paraText = para.AppendText("プロフェッショナルなWord Python API")
paraText.CharacterFormat.FontSize = 12
paraText.CharacterFormat.TextColor = Color.get_DeepPink()
paraText.CharacterFormat.FontName = "Yu Gothic UI"
para.Format.Borders.Bottom.BorderType = BorderStyle.Single
para.Format.Borders.Bottom.Space = 0.05

paragraph = section.HeadersFooters.Footer.AddParagraph()
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
paraText = paragraph.AppendText("Spire.Doc for Python")
paraText.CharacterFormat.FontSize = 12
paraText.CharacterFormat.FontName = "Yu Gothic UI"
paraText.CharacterFormat.Bold = True
paraText.CharacterFormat.TextColor = Color.get_DodgerBlue()

# 結果の文書を保存します
doc.SaveToFile("output/異なる最初のページのヘッダーとフッター.docx")
doc.Close()

Spire.Docで挿入された異なる最初のページのヘッダーとフッター

奇数・偶数ページで異なるヘッダー・フッター

奇数ページと偶数ページで異なるヘッダーやフッターを設定するには、Spire.Doc for Python の Section.PageSetup.DifferentOddAndEvenPagesHeaderFooter プロパティを使用します。以下の手順で実装できます。

奇数ページと偶数ページで異なるヘッダー・フッターを設定する手順

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.Sections.get_Item() メソッドを使用して、対象のセクションを取得します。
  • Section.PageSetup.DifferentOddAndEvenPagesHeaderFooter プロパティを True に設定し、奇数ページと偶数ページで異なるヘッダー・フッターを有効化します。
  • Section.HeadersFooters.OddHeader および Section.HeadersFooters.OddFooter プロパティを使用して、奇数ページのヘッダーとフッターを取得します。
  • 段落を追加し、テキストを挿入します。
  • Section.HeadersFooters.EvenHeader および Section.HeadersFooters.EvenFooter プロパティを使用して、偶数ページのヘッダーとフッターを取得します。
  • 段落を追加し、テキストを挿入します。
  • Document.SaveToFile() メソッドで保存します。
  • Python
from spire.doc import Document, HorizontalAlignment, Color

# Document オブジェクトを作成します
doc = Document()

# Word 文書を読み込みます
doc.LoadFromFile("Sample.docx")

# 最初のセクションを取得します
section = doc.Sections.get_Item(0)

# 奇数ページと偶数ページで異なるヘッダーとフッターを有効にします
section.PageSetup.DifferentOddAndEvenPagesHeaderFooter = True

# 奇数ページのヘッダーとフッターを追加します
OHPara = section.HeadersFooters.OddHeader.AddParagraph()
OHText = OHPara.AppendText("奇数ページのヘッダー")
OHPara.Format.HorizontalAlignment = HorizontalAlignment.Center
OHText.CharacterFormat.FontName = "Yu Gothic UI"
OHText.CharacterFormat.FontSize = 12
OHText.CharacterFormat.TextColor = Color.get_Red()

OFPara = section.HeadersFooters.OddFooter.AddParagraph()
OFText = OFPara.AppendText("奇数ページのフッター")
OFPara.Format.HorizontalAlignment = HorizontalAlignment.Center
OFText.CharacterFormat.FontName = "Yu Gothic UI"
OFText.CharacterFormat.FontSize = 12
OFText.CharacterFormat.TextColor = Color.get_Red()

# 偶数ページのヘッダーとフッターを追加します
EHPara = section.HeadersFooters.EvenHeader.AddParagraph()
EHText = EHPara.AppendText("偶数ページのヘッダー")
EHPara.Format.HorizontalAlignment = HorizontalAlignment.Center
EHText.CharacterFormat.FontName = "Yu Gothic UI"
EHText.CharacterFormat.FontSize = 12
EHText.CharacterFormat.TextColor = Color.get_Blue()

EFPara = section.HeadersFooters.EvenFooter.AddParagraph()
EFText = EFPara.AppendText("偶数ページのフッター")
EFPara.Format.HorizontalAlignment = HorizontalAlignment.Center
EFText.CharacterFormat.FontName = "Yu Gothic UI"
EFText.CharacterFormat.FontSize = 12
EFText.CharacterFormat.TextColor = Color.get_Blue()

# 結果の文書を保存します
doc.SaveToFile("output/奇数と偶数ページのヘッダーとフッター.docx")
doc.Close()

Pythonで挿入される奇数と偶数の異なるページヘッダーとフッター

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word ドキュメントのフォントを変更すると、見た目や読みやすさが大きく変わります。文書のスタイルを向上させたり、特定のフォーマット要件に合わせたりするために、フォントの変更は有効です。Spire.Doc for 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 で段落のフォントを変更する

Spire.Doc for Python を使用すると、ParagraphStyle オブジェクトを作成し、それを段落に適用することでフォント情報を指定できます。以下に、段落のフォントを変更する階段を紹介します。

  • Document インスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ファイルを読み込みます。
  • Document.Sections[index] プロパティを使用して、特定のセクションを取得します。
  • Section.Paragraphs[index] プロパティを使用し、フォントを変更したい段落を取得します。
  • ParagraphStyle インスタンスを作成し、フォント名、フォントカラー、フォントスタイルを指定します。
  • Document.Styles.Add() メソッドを使用して、作成したスタイルをドキュメントに追加します。
  • Paragraph.ApplyStyle() メソッドを使用して、スタイルを段落に適用します。
  • Document.SaveToFile() メソッドを使用し、変更後の文書を保存します。
  • Python
from spire.doc import Document, ParagraphStyle, Color

# Document インスタンスを作成します
doc = Document()

# Word 文書を読み込みます
doc.LoadFromFile('Sample.docx')

# 最初のセクションを取得します
section = doc.Sections.get_Item(0)

# 特定の段落を取得します
paragraph = section.Paragraphs.get_Item(2)
print(paragraph.Text)

# 段落スタイルを作成します
style = ParagraphStyle(doc)
style.Name = '段落のフォント'
style.CharacterFormat.FontName = 'Yu Gothic UI'
style.CharacterFormat.Bold = True
style.CharacterFormat.Italic = True
style.CharacterFormat.TextColor = Color.get_Red()
doc.Styles.Add(style)

# スタイルを段落に適用します
paragraph.ApplyStyle(style.Name)

# 結果の文書を保存します
doc.SaveToFile('output/Wordの段落フォントの変更.docx')
doc.Dispose()

PythonでWord文書の段落のフォントを変更

Python で特定のテキストのフォントを変更する

Word ドキュメント内の特定の文字、句、文章のフォントを変更するためには、先に変更したいテキストを検索し、その文字に対してフォントカラーやスタイルを設定します。以下に詳細な階段を紹介します。

  • Document インスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ファイルを読み込みます。
  • Document.FindAllString() メソッドを使用し、変更したい文字を検索します。
  • 検索結果をループ出力し、毎回の検索結果に対してフォントカラーやスタイルを変更します。
  • Document.SaveToFile() メソッドを使用し、変更後の文書を保存します。
  • Python
from spire.doc import Document, Color

# Document インスタンスを作成します
doc = Document()

# Word 文書を読み込みます
doc.LoadFromFile('Sample.docx')

# フォントを変更したいテキストを検索します
textSelections = doc.FindAllString('有効成分', False, True)

# テキストのフォントスタイルを変更します
for selection in textSelections:
    selection.GetAsOneRange().CharacterFormat.TextColor = Color.get_Red()
    selection.GetAsOneRange().CharacterFormat.Bold = True

# 結果の文書を保存します
doc.SaveToFile('output/Wordのテキストフォントの変更.docx')
doc.Dispose()

Spire.DocでWord文書テキストのフォントを変更

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

1 / 87