チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
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 日間有効な一時ライセンスを取得してください。