Python เพื่อคนทำงานออฟฟิศ: สคริปต์ 10 บรรทัด ช่วยรวมไฟล์ Excel 100 ไฟล์ในพริบตา
สิ้นเดือนทีไร มนุษย์ออฟฟิศหลายคนแทบอยากจะร้องไห้! เมื่อผู้จัดการสั่งงานว่า: “ช่วยรวบรวมไฟล์รายงานยอดขายประจำวันของทั้ง 30 สาขาตลอดทั้งเดือน (รวมเป็น 900 ไฟล์) มารวมเป็นตารางสรุปไฟล์เดียวให้พี่ก่อนเที่ยงนี้นะ!”
ถ้าทำแบบเดิม คุณต้องนั่งดับเบิลคลิกเปิดไฟล์ Excel -> ลากคลุมข้อมูล -> กด Copy -> สลับหน้าจอ -> กด Paste ทำแบบนี้วนไป 900 รอบ ทั้งเมื่อยมือ ปวดตา และเสี่ยงก๊อบปี้ผิดบรรทัดอย่างยิ่ง
แต่วันนี้เราจะมาเปลี่ยนชีวิตการทำงานของคุณ ด้วยการจ้างหุ่นยนต์ Python + Pandas มาทำงานแทนเรา ด้วยโค้ดสั้นๆ ไม่ถึง 10 บรรทัด ที่ทำงานเสร็จภายในเวลาไม่ถึง 3 วินาทีครับ!
โค้ดมหัศจรรย์ 10 บรรทัดที่มนุษย์ออฟฟิศต้องมี
เพียงติดตั้งไลบรารียอดฮิตด้วยคำสั่ง pip install pandas openpyxl แล้วรันสคริปต์นี้:
import pandas as pd
import glob
# 1. ค้นหาไฟล์ Excel ทั้งหมดในโฟลเดอร์
all_files = glob.glob(“sales_data/*.xlsx”)
# 2. ดูดข้อมูลจากทุกไฟล์มารวมไว้ในลิสต์เดียว
df_list = [pd.read_excel(file) for file in all_files]
# 3. รวมร่างข้อมูลทั้งหมดต่อกันแบบอัตโนมัติ
combined_df = pd.concat(df_list, ignore_index=True)
# 4. เซฟเป็นไฟล์สรุปฉบับสมบูรณ์
combined_df.to_excel(“Master_Sales_Report.xlsx”, index=False)
print(“รวมไฟล์ทั้งหมดเสร็จสมบูรณ์ในพริบตา!”)
import glob
# 1. ค้นหาไฟล์ Excel ทั้งหมดในโฟลเดอร์
all_files = glob.glob(“sales_data/*.xlsx”)
# 2. ดูดข้อมูลจากทุกไฟล์มารวมไว้ในลิสต์เดียว
df_list = [pd.read_excel(file) for file in all_files]
# 3. รวมร่างข้อมูลทั้งหมดต่อกันแบบอัตโนมัติ
combined_df = pd.concat(df_list, ignore_index=True)
# 4. เซฟเป็นไฟล์สรุปฉบับสมบูรณ์
combined_df.to_excel(“Master_Sales_Report.xlsx”, index=False)
print(“รวมไฟล์ทั้งหมดเสร็จสมบูรณ์ในพริบตา!”)
ทำไม Python ถึงชนะ Excel ในงานแบบนี้ขาดลอย?
- ไม่มีอาการค้าง (No Crash): Excel มักจะค้างเมื่อเปิดไฟล์พร้อมกันเกิน 20 ไฟล์ แต่ Python สามารถประมวลผลข้อมูลนับแสนแถวได้เบื้องหลังโดยกินแรมน้อยมาก
- ทำซ้ำได้ตลอดไป (Reproducibility): เดือนหน้าถ้ามีรายงานเข้ามาอีก 900 ไฟล์ คุณไม่ต้องเหนื่อยอีกแล้ว แค่วางไฟล์ลงโฟลเดอร์แล้วกดปุ่ม Run ครั้งเดียว จบงานได้ใน 3 วินาที!
- ลดความผิดพลาดจากคน (Zero Human Error): ไม่มีการลืมก๊อบปี้แถวสุดท้าย หรือเผลอวางข้อมูลผิดคอลัมน์แน่นอนครับ!