สร้างไฟล์ Excel พร้อม Bar Chart จากข้อมูล Grand Slam ของนักเทนนิส
ขั้นตอน
- ติดตั้ง:
pip install openpyxl - สร้าง Workbook และ Sheet
- เขียนข้อมูลหัวข้อและแถวข้อมูล
- Import
BarChart, Referenceจากopenpyxl.chart - ตั้งค่าชาร์ท: title, axis titles
- สร้าง Reference ชี้ช่วงข้อมูล
- เพิ่มข้อมูลลงชาร์ทด้วย
add_data() - วางชาร์ทบน Sheet และ Save
ตัวอย่างโค้ดเต็ม
import openpyxl
from openpyxl.chart import BarChart, Reference
file_name = "charts.xlsx"
file_data = (
('player', 'titles'),
('Federer', 20),
('Nadal', 20),
('Djokovic', 17),
('Murray', 3)
)
xlsxfile = openpyxl.Workbook()
new_workbook = xlsxfile['Sheet']
for row, (player, titles) in enumerate(file_data, 1):
new_workbook[f'A{row}'].value = player
new_workbook[f'B{row}'].value = titles
xlsxfile.save(file_name)
# โหลดกลับมาเพื่อสร้างชาร์ท
excel_file_data = openpyxl.load_workbook(file_name)
sheet_values = excel_file_data['Sheet']
chart = BarChart()
chart.title = "Players & Grand Slams"
chart.y_axis.title = 'Titles'
chart.x_axis.title = 'Tennis Players'
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)
new_workbook.add_chart(chart, "A6")
xlsxfile.save(file_name)
ผลลัพธ์
ได้ไฟล์ charts.xlsx พร้อม Bar Chart แสดงข้อมูล