チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
Excel ファイルを PDF 形式に変換することで、スプレッドシートを他人と共有・配布しやすくなります。特に、異なるデバイスやソフトウェアでもレイアウトや書式を維持したい場合に便利です。さらに、PDF は Excel ファイルよりも見栄えが良く、公式なレポートやプレゼン資料、ビジネス文書としてよく利用されます。
この記事では、Python で Spire.XLS for Python ライブラリを使用して、Excel ファイルを PDF に変換する方法をご紹介します。
この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.XLS
Excelドキュメント全体を1つのPDFファイルに変換するには、Workbook.SaveToFile() メソッドを使用します。変換後のPDFには、各ワークシートが1ページずつ表示されます。変換の詳細設定は、Workbook.ConverterSetting プロパティを使って調整できます。
以下は、Excel ドキュメント全体を PDF に変換する手順です:
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()
特定のワークシートだけを PDF に変換したい場合は、Worksheet.SaveToPdf() メソッドを使用します。以下がその手順です:
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()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel スプレッドシートは、データの整理、分析、表形式での表示に広く利用されています。プログラムから Excel ファイルを操作できるようになると、自動化や他のアプリケーションとの連携が可能になり、大変便利です。特に、新しい Excel ファイルを作成したり、既存のファイルから情報を取得したり、必要に応じてデータを更新・変更する方法を理解しておくと役立ちます。
本記事では、Spire.XLS for Python ライブラリを使用して、Python で Excel ドキュメントを作成・読み取り・更新する方法を紹介します。
この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.XLS
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 ドキュメントを作成する手順です。
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()
Worksheet.Range.Value プロパティを使用すると、セルの数値または文字列の値を文字列として取得できます。ワークシート全体やセル範囲からデータを取得するには、セルをループ処理することで可能です。
以下は、Spire.XLS for 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("")
特定のセルの値を変更するには、Worksheet.Range.Value プロパティを使って新しい値を代入するだけで構いません。以下は、その手順です。
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()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
透かしとは、文書の本文の背面に半透明で表示される文字列や画像のことです。Word では、著作権記号、作成者名、会社のロゴなどを透かしとして追加することで、文書の知的財産を保護できます。また、「下書き」「機密」「最終版」など、文書の状態を示す目的でも使用されます。
この記事では、Spire.Doc for Python を使用して、Python で Word 文書に文字の透かしおよび画像の透かしを挿入する方法を紹介します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python では、TextWatermark クラスを使用して文字の透かしを作成し、Document.Watermark プロパティを通じて文書に挿入できます。以下に手順を示します。
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()
画像の透かしを設定するには、PictureWatermark クラスのメソッドを使用します。手順は以下の通りです。
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()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
テキスト ボックスは、Word において非常に柔軟なツールであり、ページ上の任意の位置に文字列やその他の要素を配置できます。これにより、目を引くチラシ、パンフレット、報告書などを作成することが可能になります。特定の文章を強調したり、画像の近くにキャプションを追加したり、文書に装飾的な要素を加えたりと、テキスト ボックスを活用することで、実用的かつ視覚的に魅力的なドキュメント デザインが可能になります。
この記事では、Spire.Doc for Python を使用して、Python で Word 文書にテキスト ボックスを挿入・削除する方法を解説します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python では、Paragraph.AppendTextBox() メソッドを使用して、特定の段落にテキスト ボックスを挿入できます。テキスト ボックスの内容や書式は、TextBox オブジェクトのプロパティを通じて設定します。以下に詳細な手順を示します。
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()
Spire.Doc for Python では、Document.TextBoxes.RemoveAt(int index) メソッドを使用して、指定したテキスト ボックスを削除できます。文書内のすべてのテキスト ボックスを一括で削除したい場合は、Document.TextBoxes.Clear() メソッドを使用します。以下は、最初のテキスト ボックスを削除する例です。
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()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
現代のワークフローでは、データ分析は Excel で行われ、最終的なレポートは Word で作成されることが一般的です。しかし、データを手動でコピー&ペーストすると、エラーやバージョンの不整合、書式の乱れが発生する可能性があります。Python を活用した自動化により、Excel のデータ処理機能と Word のフォーマット機能をシームレスに統合でき、データの整合性を確保しながら作業の効率を向上させることが可能です。本記事では、Spire.Office for Python を使用して、Python コードで Excel の表を Word 文書に挿入する方法を解説します。
この操作には、Spire.Office for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Office for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.XLS for Python を使用すると、Excel ワークシートから数値書式を保持したままデータを抽出できます(CellRange.NumberText プロパティを使用)。抽出したデータを、Spire.Doc for Python を使用して Word の表に挿入できます。この方法は、単純な Excel ワークシートや、Word で書式を変更する必要があるケースに適しています。
Excel のデータを読み込み Word に挿入する手順
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.XLS for Python と Spire.Doc for Python を併用すると、Excel のデータと書式の両方を Word にコピーし、表の構造と外観を保持できます。
書式を保持するために必要な補助メソッド
データと書式をコピーする手順
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
データと書式のコピーに加え、Excel ワークシートを OLE オブジェクトとして Word に埋め込むこともできます。この方法を使用すると、Excel のワークシートを完全な形式で表示できるだけでなく、Word 文書内で直接編集することも可能になります。
Spire.Doc for Python の Paragraph.AppendOleObject(str: filename, DocPicture, OleObjectType.ExcelWorksheet) メソッドを使用すると、Excel ファイルを簡単に OLE オブジェクトとして挿入できます。
Excel ワークシートを OLE オブジェクトとして挿入する手順
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()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel ワークシートでは、生データが単なる数値として表示されることが多く、直感的に理解しづらい場合があります。数値書式を設定することで、これらの数値をより分かりやすい形式に変換できます。たとえば、売上データを通貨形式に設定すると、通貨記号や桁区切り記号が追加され、一目で金額を把握できるようになります。また、市場シェアデータをパーセンテージ形式に設定することで、各部分の割合が明確になり、迅速な比較や分析が可能になります。本記事では、Spire.XLS for .NET を使用して C# で Excel セルの数値書式を設定する方法を解説します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Excel の数値書式コードでは、数値の表示方法を定義するためにさまざまな記号が使用されます。以下に、一般的な記号の詳細な説明を示します。
記号 | 説明 |
0 | 必須の数字プレースホルダー。必要に応じてゼロで埋められます。 |
# | 任意の数字プレースホルダー。意味のないゼロは表示されません。 |
? | 任意の数字プレースホルダー。小数点の位置を揃えるためにスペースが追加され、小数の末尾にゼロが補われることがあります。 |
. | 小数点を表します。 |
, | 桁区切り記号として使用されます。 |
; | 正、負、ゼロ、およびテキストの各値に対する書式コードのセクションを区切ります。 |
% | 数値を100倍し、パーセント記号を追加します。 |
E - + | 指数表記(科学技術表記)を示します。 |
通貨記号($, €, ¥ など) | 対応する通貨記号を表示します。 |
[Color] | 数値の表示に色を指定します。 |
日付/時刻(yyyy, mmmm, mm, dd, hh, ss, AM/PM) | それぞれ年、月(完全名)、月、日、時、分、秒、および12時間制の指標を表します。 |
Spire.XLS for .NET では、CellRange.NumberValue プロパティを使用してセルの数値を設定し、CellRange.NumberFormat プロパティを使用して数値書式コードを設定できます。詳細な手順は以下のとおりです。
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();
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word 文書の脚注は、文書の内容を補足し、参考情報や引用を提供するための便利な機能です。脚注を利用することで、複雑な概念の詳細な説明を追加したり、主張を裏付ける出典を明示したり、読者にとって興味深い補足情報を提示したりできます。学術論文や書籍、その他の引用や説明を要する文書を作成する際に、脚注はレイアウトをすっきりと保ちながら補足情報を提供するのに役立ちます。本記事では、Spire.Doc for Python を使用して Word 文書に脚注を挿入・削除する方法を解説します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python が提供する Paragraph.AppendFootnote(FootnoteType.Footnote) メソッドを使用すると、特定の段落に簡単に脚注を追加できます。手順は以下の通りです。
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()
特定のテキストに脚注を追加する場合は、文書内の該当テキストを検索し、そのテキストが属する段落内の位置を取得した後に、脚注を挿入します。手順は以下の通りです。
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()
不要になった脚注を削除することで、文書をより整理された状態にできます。脚注を削除する手順は以下の通りです。
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 パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
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 文書からすべてのハイパーリンクを抽出する手順
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();
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word のヘッダーとフッターは、各ページの上部および下部の余白に配置されるセクションです。これには、ページ番号、文書タイトル、日付、作成者名などの情報を追加できます。通常、すべてのページで同じヘッダーやフッターが適用されますが、特定のシナリオでは、最初のページ、奇数ページ、偶数ページに異なるヘッダーやフッターを挿入することも可能です。本記事では、Spire.Doc for Python を使用して、Python で Word 文書にヘッダーとフッターを挿入する方法を説明します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Word 文書にヘッダーやフッターを挿入するには、まず Section.HeadersFooters.Header または Section.HeadersFooters.Footer プロパティを取得し、それに段落を追加して、画像やテキスト、ページ番号、日付などを挿入します。
ヘッダーとフッターを追加する手順
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()
最初のページのみにヘッダーやフッターを追加する場合、または最初のページとそれ以外のページで異なるヘッダーやフッターを設定したい場合があります。
Spire.Doc for Python では、Section.PageSetup.DifferentFirstPageHeaderFooter プロパティを使用することで、最初のページ専用のヘッダーやフッターを設定できます。以下の手順で実装できます。
最初のページとその他のページで異なるヘッダー・フッターを設定する手順
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 for Python の Section.PageSetup.DifferentOddAndEvenPagesHeaderFooter プロパティを使用します。以下の手順で実装できます。
奇数ページと偶数ページで異なるヘッダー・フッターを設定する手順
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()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word ドキュメントのフォントを変更すると、見た目や読みやすさが大きく変わります。文書のスタイルを向上させたり、特定のフォーマット要件に合わせたりするために、フォントの変更は有効です。Spire.Doc for Python を使用すると、Word ドキュメント内の段落または特定のテキストのフォントを変更できます。この記事では、Python を使って Word ドキュメントのフォントを変更する方法を解説します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python を使用すると、ParagraphStyle オブジェクトを作成し、それを段落に適用することでフォント情報を指定できます。以下に、段落のフォントを変更する階段を紹介します。
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()
Word ドキュメント内の特定の文字、句、文章のフォントを変更するためには、先に変更したいテキストを検索し、その文字に対してフォントカラーやスタイルを設定します。以下に詳細な階段を紹介します。
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()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。