チュートリアル

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

チュートリアル»xlspythonconversion

Displaying items by tag: xlspythonconversion

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 日間有効な一時ライセンスを取得してください。

Published in 変換

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 日間有効な一時ライセンスを取得してください。

Published in 文書操作