XlsxWriter เป็นไลบรารี Python สำหรับทำงานกับ Excel: สร้าง เขียน คำนวณ และวาดกราฟ
ตัวอย่างโค้ด: แสดง Built-in Styles ทั้ง 48 รูปแบบ
import xlsxwriter
workbook = xlsxwriter.Workbook('chart_styles.xlsx')
chart_types = ['column', 'area']
for chart_type in chart_types:
# เพิ่ม worksheet สำหรับแต่ละ chart type
worksheet = workbook.add_worksheet(chart_type.title())
worksheet.set_zoom(30)
style_number = 1
# สร้าง 48 built-in styles (แต่ละชาร์ท 15x8)
for row_num in range(0, 90, 15):
for col_num in range(0, 64, 8):
chart = workbook.add_chart({'type': chart_type})
chart.add_series({'values': '=Data!$A$1:$A$6'})
chart.set_title({'name': f'Style {style_number}'})
chart.set_legend({'none': True})
chart.set_style(style_number)
worksheet.insert_chart(row_num, col_num, chart)
style_number += 1
# Worksheet สำหรับข้อมูล (ซ่อนไว้)
data_worksheet = workbook.add_worksheet('Data')
data = [10, 40, 50, 20, 10, 50]
data_worksheet.write_column('A1', data)
data_worksheet.hide()
workbook.close()
Built-in Chart Styles (1-48)
Excel มี 48 built-in styles สำหรับแต่ละ chart type:
- Styles 1-12: สีประกอบ พร้อมเอฟเฟกต์ต่างๆ
- Styles 13-24: สีเดี่ยว ทonal variations
- Styles 25-36: Monochromatic
- Styles 37-48: Mixed/Other
การใช้งาน Custom Style แทน Built-in
# แทนที่จะใช้ set_style() ให้ปรับแต่งเอง
chart = workbook.add_chart({'type': 'column'})
chart.add_series({
'values': '=Sheet1!$A$2:$A$7',
'fill': {'color': '#4472C4'},
'border': {'color': '#2F5496'},
'gradient': {'colors': ['#4472C4', '#FFFFFF']},
})
chart.set_title({'name': 'Custom Styled Chart', 'name_font': {'size': 14, 'bold': True}})
chart.set_x_axis({'name': 'Category', 'major_gridlines': {'visible': False}})
chart.set_y_axis({'name': 'Value', 'major_gridlines': {'visible': True, 'line': {'color': '#D9E2F3'}}})
chart.set_legend({'position': 'bottom'})
chart.set_chartarea({'border': {'none': True}})
chart.set_plotarea({'border': {'none': True}})
Chart Types ที่รองรับ Styles
Styles ทำงานกับ chart types หลักๆ:
- column, bar, line, pie, doughnut, area, scatter, radar, stock
สรุป
- ใช้
set_style(n)โดย n = 1-48 สำหรับ built-in styles - สร้างไฟล์ทดสอบเพื่อดู styles ทั้งหมดก่อนเลือก
- สำหรับ production ใช้ custom formatting เพื่อ brand consistency
- ซ่อน data worksheet ด้วย
hide()เพื่อความสะอาด