Excel スプレッドシートは、データの整理、分析、表形式での表示に広く利用されています。プログラムから Excel ファイルを操作できるようになると、自動化や他のアプリケーションとの連携が可能になり、大変便利です。特に、新しい Excel ファイルを作成したり、既存のファイルから情報を取得したり、必要に応じてデータを更新・変更する方法を理解しておくと役立ちます。 本記事では、Spire.XLS for Python ライブラリを使用して、Python で Excel ドキュメントを作成・読み取り・更新する方法を紹介します。 Python で Excel ドキュメントを作成する Python で Excel ワークシートからデータを読み取る 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 ワークシートからデータを読み取る 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 ドキュメントを更新する 特定のセルの値を変更するには、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() 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。