এই পোস্টে, আমি আপনাকে দেখাব কিভাবে Python - Openpyxl মডিউল ব্যবহার করে এক্সেলে চার্ট তৈরি করতে হয়। Openpyxl মডিউল ব্যবহার করে বার চার্ট তৈরি করার জন্য ডেটা হিসাবে আমরা টেনিস খেলোয়াড়দের গ্র্যান্ডস্লাম শিরোনাম দিয়ে স্ক্র্যাচ থেকে একটি এক্সেল স্প্রেডশীট তৈরি করব।
পরিচয়..
মাইক্রোসফ্ট অফিস মাইক্রোসফ্ট এক্সেল শীটগুলিতে একটি নতুন এক্সটেনশন প্রদান করা শুরু করেছে, যা হল .xlsx, অফিস 2007 থেকে আরও সারি এবং কলাম সংরক্ষণ করতে সহায়তা করে৷ এই পরিবর্তনটি জিপ কম্প্রেশন সহ এক্সএমএল ভিত্তিক ফাইল ফর্ম্যাটে এক্সেল শীটগুলিকে সরিয়ে দিয়েছে৷ বিশ্ব মাইক্রোসফ্ট স্প্রেডশীট দ্বারা শাসিত হয়, লোকেরা বিভিন্ন উদ্দেশ্যে স্প্রেডশীট ব্যবহার করে থাকে এবং ব্যবহারের ক্ষেত্রে একটি হল ডেটা ভিজ্যুয়ালাইজেশন৷
প্রস্তুত হচ্ছে..
Openpyxl মডিউলের বিকল্প পাইথনের xlrd মডিউলটি এক্সেল ফর্ম্যাটগুলিকে সমর্থন করার ক্ষেত্রে ভাল হয়েছে, তবে এই মডিউলটি এক্সেল স্প্রেডশীটে শুধুমাত্র পঠিত ক্রিয়াকলাপ সম্পাদন করতে পারে। Openpyxl মডিউল এক্সেল শীটে রিড এবং রাইট উভয় অপারেশন করতে পারে।
কিভাবে করতে হবে..
1) আসুন প্রথমে openpyxl মডিউলটি ব্যবহার করে ইনস্টল করি
pip install openpyxl.
2) একটি নতুন এক্সেল স্প্রেডশীট তৈরি করার জন্য ডেটা সংজ্ঞায়িত করুন৷
# 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) একটি নতুন এক্সেল ফাইল তৈরি করুন। এটি একটি ডিফল্ট শীট তৈরি করে, যাকে বলা হয় শীট
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) অবশেষে ফাইল_নাম ফাইলে ডেটা সংরক্ষণ করুন
xlsxfile.save(file_name)
6) ফাইলটি মেমরিতে লোড করুন এবং সমস্ত শীট তালিকাভুক্ত করুন। নোট করুন আমরা ধাপ 2 এর অংশ হিসাবে শুধুমাত্র একটি শীট তৈরি করেছি।
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) মডিউল বারচার্ট, openpyxl.chart থেকে রেফারেন্স আমদানি করুন এবং বারচার্ট অবজেক্ট তৈরি করুন।
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() পদ্ধতিতে চার্টে যোগ করা হয়। সারি_থেকে - প্রতিটি সারি একটি ভিন্ন ডেটা সিরিজ তৈরি করে। 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 তৈরি হবে।