0Pricing
Python Academy · บทเรียน

การประมวลผลรายงานเป็นชุด

สร้างรายงานโดยอัตโนมัติ

การประมวลผลรายงานเป็นชุด เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

การทำรายงานซ้ำ ๆ โดยอัตโนมัติ

ประโยชน์สำคัญของ openpyxl คือการทำงานอัตโนมัติ นั่นคือการสร้างรายงานที่คล้ายกันจำนวนมากโดยไม่ต้องทำด้วยตนเอง เช่น แผ่นงานยอดขายรายเดือนแยกตามภูมิภาค หรือไฟล์สรุปแยกตามลูกค้า

รูปแบบการทำงานคือ วนซ้ำในกลุ่มข้อมูล สร้างสมุดงานสำหรับแต่ละกลุ่ม แล้วบันทึกด้วยชื่อที่ไม่ซ้ำกัน

การจัดกลุ่มข้อมูล

รายงานแบบชุดเริ่มต้นจากการจัดกลุ่มระเบียน เช่น จัดกลุ่มตามภูมิภาค Python มาตรฐานจัดการขั้นตอนนี้ได้อย่างเป็นระเบียบก่อนเริ่มทำงานกับ Excel

records = [
    {'region': 'North', 'sales': 100},
    {'region': 'South', 'sales': 80},
    {'region': 'North', 'sales': 120},
]
groups = {}
for r in records:
    groups.setdefault(r['region'], []).append(r['sales'])
for region, sales in groups.items():
    print(region, sales, 'total', sum(sales))

หนึ่งไฟล์ต่อหนึ่งกลุ่ม

สำหรับแต่ละกลุ่ม ให้สร้างสมุดงาน เขียนแถวข้อมูล แล้วบันทึกด้วยชื่อที่สร้างจากคีย์ของกลุ่ม เนื้อหาภายในการวนซ้ำใช้โค้ดเดียวกับที่เขียนสำหรับรายงานเดี่ยว เพียงทำซ้ำ

ชื่อไฟล์ที่ปลอดภัย

คีย์ของกลุ่มอาจมีอักขระที่ใช้ในชื่อไฟล์ไม่ได้ ให้ทำความสะอาดก่อน เพื่อไม่ให้การบันทึกล้มเหลว แนวคิดนี้เหมือนกับการสร้างชื่อย่อที่ปลอดภัยซึ่งใช้ในส่วนอื่น

import re
name = 'North/West Region 2024'
safe = re.sub(r'[^A-Za-z0-9]+', '_', name).strip('_')
print('report_' + safe + '.xlsx')

ฟังก์ชันแม่แบบที่นำกลับมาใช้ใหม่ได้

แยกโครงร่างรายงานออกมาเป็นฟังก์ชันเดียวที่รับข้อมูลและส่งคืนสมุดงาน การเรียกใช้ฟังก์ชันนี้ในการวนซ้ำช่วยให้รายงานทุกฉบับมีรูปแบบสอดคล้องกันและทำให้โค้ดเป็น DRY (อย่าทำซ้ำตัวเอง)

ฟังก์ชันนี้จะกำหนดหัวตาราง เขียนแถวข้อมูล เพิ่มผลรวมและสไตล์ แล้วส่งคืน wb

การเพิ่มแถวสรุป

รายงานส่วนใหญ่มักลงท้ายด้วยผลรวม ให้คำนวณค่ารวมใน Python หรือใช้สูตร Excel แล้วเขียนค่าเหล่านั้นเป็นแถวสุดท้าย ในที่นี้เราจะคำนวณค่าสรุป

sales = [100, 120, 90, 110]
summary = {
    'count': len(sales),
    'total': sum(sales),
    'average': sum(sales) / len(sales),
    'max': max(sales),
}
for k, v in summary.items():
    print(k.ljust(8), v)

หลายแผ่นงานในไฟล์เดียว

บางครั้งการใช้ไฟล์เดียวที่มีแผ่นงานแยกตามกลุ่มก็ดีกว่าการใช้หลายไฟล์ ให้วนซ้ำไปตามกลุ่มและเรียกใช้ wb.create_sheet(title=group_name) จากนั้นเขียนข้อมูลของแต่ละกลุ่มลงในแผ่นงานของกลุ่มนั้น แล้วบันทึกไฟล์เพียงครั้งเดียวเมื่อเสร็จสิ้น

การจัดระเบียบโฟลเดอร์ผลลัพธ์

เขียนรายงานลงในไดเรกทอรีผลลัพธ์ที่ระบุวันที่ เพื่อไม่ให้การทำงานแต่ละครั้งเขียนทับกัน ใช้ os.makedirs(path, exist_ok=True) เพื่อสร้างไดเรกทอรีอย่างปลอดภัย แล้วนำชื่อไฟล์มาต่อเข้ากับไดเรกทอรีนั้น

import os
base = 'reports'
run_date = '2026-05-30'
out_dir = os.path.join(base, run_date)
path = os.path.join(out_dir, 'north.xlsx')
print('Would create dir:', out_dir)
print('File path:', path)

การจัดการข้อผิดพลาดในชุดงาน

ในชุดงานที่ใช้เวลานาน กลุ่มที่มีปัญหาเพียงกลุ่มเดียวไม่ควรทำให้ส่วนที่เหลือหยุดทำงาน ให้ครอบรายงานแต่ละรายการด้วย try/except บันทึกข้อผิดพลาด แล้วทำงานต่อ การทำงานที่เสร็จสิ้นเพียงบางส่วนยังดีกว่าการทำงานทั้งหมดที่หยุดลงกลางคัน

การตั้งเวลางาน

เมื่อสคริปต์ทำงานได้แล้ว ให้ตั้งเวลาให้สคริปต์ทำงานทุกคืนหรือทุกเดือนด้วย cron, ตัวจัดตารางงาน หรือระบบผสานรวมต่อเนื่อง จากนั้นโค้ดเดิมจะสร้างรายงานล่าสุดโดยอัตโนมัติ โดยไม่ต้องมีคนคอยดำเนินการ

การบันทึกความคืบหน้า

ชุดงานที่ใช้เวลานานจะได้ประโยชน์จากการแสดงความคืบหน้า ให้พิมพ์หรือบันทึกว่ากำลังประมวลผลกลุ่มใดและเหลืออีกกี่กลุ่ม เพื่อให้แยกได้ว่าการทำงานช้าหรือหยุดค้าง ตัวนับอย่างง่ายเทียบกับจำนวนทั้งหมดก็เพียงพอ

การบันทึกเหตุการณ์ยังช่วยเก็บหลักฐานว่ารายงานใดทำสำเร็จแล้ว หากจำเป็นต้องทำงานซ้ำเฉพาะรายการที่ล้มเหลว

ตรวจสอบอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับการทำงานอัตโนมัติของชุดงาน

สรุปทบทวน

ขณะนี้คุณสามารถทำให้การสร้างรายงานเป็นแบบอัตโนมัติได้แล้ว:

  • จัดกลุ่มข้อมูล แล้ววนซ้ำเพื่อสร้างสมุดงานหนึ่งเล่ม (หรือแผ่นงานหนึ่งแผ่น) ต่อกลุ่ม
  • แยกการจัดวางไว้ในฟังก์ชันแม่แบบที่นำกลับมาใช้ซ้ำได้
  • ทำชื่อไฟล์ให้ปลอดภัยและเขียนไฟล์ลงในโฟลเดอร์ผลลัพธ์ที่ระบุวันที่
  • เพิ่มแถวสรุป ครอบรายงานแต่ละรายการด้วย try/except และตั้งเวลาให้สคริปต์ทำงาน

วิธีนี้เปลี่ยนงานสเปรดชีตที่ต้องทำด้วยตนเองหลายชั่วโมงให้กลายเป็นงานที่เรียกใช้ด้วยคำสั่งเดียว

คำถามที่พบบ่อย

บทเรียน “การประมวลผลรายงานเป็นชุด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การประมวลผลรายงานเป็นชุด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การประมวลผลรายงานเป็นชุด”

สร้างรายงานโดยอัตโนมัติ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การประมวลผลรายงานเป็นชุด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การอ่านเวิร์กบุ๊ก
  2. การเขียนและจัดรูปแบบเซลล์
  3. สูตรและกราฟ
  4. การประมวลผลรายงานเป็นชุด
← กลับไปที่ Python Academy