Python
 Computer >> コンピューター >  >> プログラミング >> Python

openpyxlでPythonを使用してExcelでグラフを作成するにはどうすればよいですか?


この投稿では、Python-Openpyxlモジュールを使用してExcelでチャートを作成する方法を紹介します。 openpyxlモジュールを使用して棒グラフを作成するためのデータとして、テニスプレーヤーのグランドスラムタイトルを使用して、Excelスプレッドシートを最初から作成します。

はじめに..

Microsoft Officeは、より多くの行と列の保存をサポートするために、Office2007からMicrosoftExcelシートに.xlsxという新しい拡張機能の提供を開始しました。この変更により、ExcelシートはZIP圧縮を使用したXMLベースのファイル形式に移行しました。世界はMicrosoftスプレッドシートによって支配されており、人々はさまざまな目的でスプレッドシートを使用しており、その使用例の1つはデータの視覚化です。

準備中..

Openpyxlモジュールの代替となるPythonのxlrdモジュールは、Excel形式のサポートに優れていますが、このモジュールは、Excelスプレッドシートで読み取り専用操作を実行できます。 openpyxlモジュールは、Excelシートで読み取り操作と書き込み操作の両方を実行できます。

その方法..

1)。最初に

を使用してopenpyxlモジュールをインストールしましょう
pip install openpyxl.

2)。新しいExcelスプレッドシートを作成するためのデータを定義します。

# import the module
import openpyxl

# Define your file name and data
file_name = "charts.xlsx"
file_data = (['player', 'titles'], ['Federer', 20], ['Nadal', 20], ['Djokovic', 17], ['Murray', 3])

3)。新しいExcelファイルを作成します。これにより、Sheet

と呼ばれるデフォルトのシートが作成されます
xlsxfile = openpyxl.Workbook()
print(f" *** The sheets inside the excel_file are = {xlsxfile.sheetnames}")
new_workbook = xlsxfile['Sheet']


*** The sheets inside the excel_file are = ['Sheet']

4)。テニスプレーヤーとそのグランドスラムタイトルに関するデータをこのシートに追加します。

for row, (player,titles) in enumerate(file_data, 1):
new_workbook['A{}'.format(row)].value = player
new_workbook['B{}'.format(row)].value = titles

5)。最後にデータをfile_nameファイルに保存します

xlsxfile.save(file_name)

6)。ファイルをメモリにロードし、すべてのシートを一覧表示します。手順2の一部として作成したシートは1つだけであることに注意してください。

import openpyxl
excel_file_data = openpyxl.load_workbook(file_name)
excel_file_data.sheetnames


['Sheet']

7)。最初のシートを取得し、セルの値(A2やB2など)を取得します。

sheet_values = excel_file_data['Sheet']
print(f" *** One of the value from the sheet is - {sheet_values['A2'].value} - {sheet_values['B2'].value}")


*** One of the value from the sheet is - Federer - 20

8)。グラフにデータが正しく挿入されていることを確認するために、スプレッドシートのすべての行と列を出力します。

for row in sheet_values:
for cell in row:
print(cell.value)


player
titles
Federer
20
Nadal
20
Djokovic
17
Murray
3

9)。モジュールBarChart、Referenceをopenpyxl.chartからインポートし、Barchartオブジェクトを作成します。

from openpyxl.chart import BarChart, Reference
chart = BarChart()


#10.
# Fill the basic information like chart title,..

chart.title = "Players & Grand Slams"
chart.y_axis.title = 'Titles'
chart.x_axis.title = 'Tennis Players'


#11.
# Now we will create a reference to the data and append the data to the chart.

data = Reference(sheet_values, min_row=2, max_row=5, min_col=1, max_col=2)
chart.add_data(data, from_rows=True, titles_from_data=True)


#12.
# Finally, Add the chart to the sheet and save the file.

new_workbook.add_chart(chart, "A6")
xlsxfile.save(file_name)
を保存します。

ステップ11は、参照オブジェクトを介して、行2の列1から行5の列2までの参照ボックスを作成します。これは、データが存在する領域であり、オフコースヘッダーは除外されます。

データは、.add_data()メソッドを使用してグラフに追加されます。 from_rows -各行を異なるデータ系列にします。 titles_from_data -最初の列を使用してシリーズに名前を付けます。

上記で説明したすべてをまとめます。

"""
Program: Create charts in excel using Python with openpyxl params: NA
output: Creates a chart.xlsx file with tennis players grandslam titles and a barchart representation of the data
"""
# import the module
import openpyxl
# Define your file name and data
file_name = "charts.xlsx"
file_data = ([ 'player' , 'titles' ], [ 'Federer' , 20 ], [ 'Nadal' , 20 ], [ 'Djokovic' , 17 ], [ 'Murray' , 3 ])
# create an excel spreadsheet
xlsxfile = openpyxl . Workbook ()
print ( f " *** The sheets inside the excel_file are = { xlsxfile . sheetnames } " )
new_workbook = xlsxfile [ 'Sheet' ]
for row , ( player , titles ) in enumerate ( file_data , 1 ):
new_workbook [ 'A {} ' . format ( row )] . value = player
new_workbook [ 'B {} ' . format ( row )] . value = titles
# save the spreadsheet
xlsxfile .save ( file_name )
# read the data
 excel_file_data = openpyxl . load_workbook ( file_name )
excel_file_data . sheetnames

sheet_values = excel_file_data [ 'Sheet' ]
print ( f " *** One of the value from the sheet is - { sheet_values [ 'A2' ] . value } - { sheet_values [ 'B2' ] . value } " )
for row in sheet_values :
for cell in row :
print ( cell . value ) # barchart creation from openpyxl.chart
import BarChart , Reference chart = BarChart ()
# Fill the basic information like chart title,..
chart . title = "Players & Grand Slams"
 chart . y_axis . title = 'Titles'
chart . x_axis . title = 'Tennis Players'
# Now we will create a reference to the data and append the data to the chart.
data = Reference ( sheet_values , min_row = 2 , max_row = 5 , min_col = 1 , max_col = 2 )
chart .
 add_data ( data , from_rows = True , titles_from_data = True )
# Finally, Add the chart to the sheet and save the file.
new_workbook . add_chart ( chart , "A6" )
 xlsxfile . save ( file_name )
*** The sheets inside the excel_file are = ['Sheet']
*** One of the value from the sheet is - Federer - 20
player
titles
Federer
20
Nadal
20
Djokovic
17
Murray
3

出力

上記のプログラムを実行すると、charts.xlsxがこのコードと同じディレクトリに作成されます。

openpyxlでPythonを使用してExcelでグラフを作成するにはどうすればよいですか?


  1. Excel でフォームを使用してデータベースを作成する方法

    多くの場合、データベースの作成が必要になることがあります エクセルで。幸いなことに、Excel にはデータ入力 フォーム が用意されています。 そのようなタスクを伝統的に行うのではなく、効率的に達成すること。この有益なセッションでは、 フォーム を使用して Excel でデータベースを作成する方法を順を追って説明します。 フォームに関連するいくつかの重要事項を含む . Excel のデータ入力フォームとは 通常、ユーザーは Excel でセルごとにデータを入力します。このように入力すると、特に大規模なデータベースを作成する場合に問題が発生する可能性があります。このような状況では、デー

  2. Excel でクライアント データベースを作成する方法 (簡単な手順)

    この記事では、Microsoft Excel でクライアント データベースを作成する方法について説明します。 .通常、従来のデータベース テーブル、フィールド、レコード、主キー、外部キーなどがあります。幸い、Excel ではデータベースを作成できます それらをExcelテーブルに変換します。さらに、Excel には 並べ替えとフィルタ などの非常に便利なツールがいくつかあります。 データベース内のデータをナビゲートするために適用できます。それでは、この記事を読んで、Excel でクライアント データベースを作成する方法を学びましょう。 この記事の準備に使用した練習用ワークブックをダウンロード