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がこのコードと同じディレクトリに作成されます。
-
Excel でフォームを使用してデータベースを作成する方法
多くの場合、データベースの作成が必要になることがあります エクセルで。幸いなことに、Excel にはデータ入力 フォーム が用意されています。 そのようなタスクを伝統的に行うのではなく、効率的に達成すること。この有益なセッションでは、 フォーム を使用して Excel でデータベースを作成する方法を順を追って説明します。 フォームに関連するいくつかの重要事項を含む . Excel のデータ入力フォームとは 通常、ユーザーは Excel でセルごとにデータを入力します。このように入力すると、特に大規模なデータベースを作成する場合に問題が発生する可能性があります。このような状況では、デー
-
Excel でクライアント データベースを作成する方法 (簡単な手順)
この記事では、Microsoft Excel でクライアント データベースを作成する方法について説明します。 .通常、従来のデータベース テーブル、フィールド、レコード、主キー、外部キーなどがあります。幸い、Excel ではデータベースを作成できます それらをExcelテーブルに変換します。さらに、Excel には 並べ替えとフィルタ などの非常に便利なツールがいくつかあります。 データベース内のデータをナビゲートするために適用できます。それでは、この記事を読んで、Excel でクライアント データベースを作成する方法を学びましょう。 この記事の準備に使用した練習用ワークブックをダウンロード