পায়থনে এক্সেল চার্ট তৈরি
openpyxl লাইব্রেরি ব্যবহার করে এক্সেল ফাইলে চার্ট (বার চার্ট, লাইন চার্ট, পাই চার্ট ইত্যাদি) তৈরি করা যায়। এটি .xlsx ফরম্যাট সাপোর্ট করে (Office 2007+)。
ইনস্টলেশন
pip install openpyxl
পূর্ণ উদাহরণ: টেনিস খেলাড়ীদের গ্র্যান্ড স্ল্যাম টাইটেল বার চার্ট
import openpyxl
from openpyxl.chart import BarChart, Reference
# ১. ডেটা প্রস্তুত
file_name = "charts.xlsx"
file_data = [
['player', 'titles'],
['Federer', 20],
['Nadal', 20],
['Djokovic', 17],
['Murray', 3]
]
# ২. ওয়ার্কবুক ও শিট তৈরি
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "Grand Slams"
# ৩. ডেটা লিখুন
for row_idx, (player, titles) in enumerate(file_data, 1):
ws[f'A{row_idx}'] = player
ws[f'B{row_idx}'] = titles
# ৪. বার চার্ট অবজেক্ট তৈরি
chart = BarChart()
chart.title = "Players & Grand Slams"
chart.y_axis.title = 'Titles'
chart.x_axis.title = 'Tennis Players'
# ৫. ডেটা রেফারেন্স (হেডার বাদ দিয়ে)
data = Reference(ws, min_row=2, max_row=5, min_col=1, max_col=2)
chart.add_data(data, from_rows=True, titles_from_data=True)
# ৬. চার্ট শিটে যোগ করুন (A6 সেল থেকে শুরু)
ws.add_chart(chart, "A6")
# ৭. ফাইল সেভ
wb.save(file_name)
print(f"Chart saved to {file_name}")
কোড ব্যাখ্যা
| লাইন | বর্ণনা |
|---|---|
Reference(ws, min_row=2, max_row=5, min_col=1, max_col=2) | A2:B5 রেঞ্জ রেফারেন্স (হেডার বাদ) |
from_rows=True | প্রতিটি সারি আলাদা সিরিজ |
titles_from_data=True | প্রথম কলাম সিরিজ নাম হিসেবে ব্যবহার |
ws.add_chart(chart, "A6") | A6 সেলের উপরে চার্ট প্লেস |
অন্যান্য চার্ট টাইপ
from openpyxl.chart import LineChart, PieChart, ScatterChart
# লাইন চার্ট
chart = LineChart()
# পাই চার্ট
chart = PieChart()
# স্ক্যাটার চার্ট
chart = ScatterChart()
চার্ট কাস্টোমাইজেশন
chart.style = 10 # বিল্ট-ইন স্টাইল
chart.legend.position = 'b' # লেজেন্ড নিচে
chart.width = 20 # চওড়া (cm)
chart.height = 15 # উচ্চতা (cm)
উপসংহার
openpyxlদিয়ে এক্সেলে প্রোগ্রাম্যাটিক্যালি চার্ট তৈরি সহজReferenceঅবজেক্ট ডেটা রেঞ্জ স্পেসিফাই করেadd_data()প্যারামিটার গুলো বুঝলে ফ্লেক্সিবল চার্ট বানানো যায়- রিপোর্ট অটোমেশন, ড্যাশবোর্ড জেনারেশনে খুব উপকারী