สมมติว่าคุณมี DataFrame และต้องการส่งออกเป็นไฟล์ Excel ที่มีหลายแผ่นงาน (sheets)
วิธีแก้ปัญหา
- ติดตั้ง
xlsxwriter(pip install xlsxwriter) - สร้าง DataFrame
- ใช้
pd.ExcelWriter()พร้อม engine='xlsxwriter' - เขียน DataFrame หลายครั้ง กำหนด
sheet_nameต่างกัน - บันทึกด้วย
excel_writer.save()หรือexcel_writer.close()
ตัวอย่างโค้ด
import pandas as pd
import xlsxwriter
df = pd.DataFrame({'Fruits': ["Apple", "Orange", "Mango", "Kiwi"],
'City': ["Shimla", "Sydney", "Lucknow", "Wellington"]})
print("DataFrame ต้นฉบับ:\n", df)
# สร้าง ExcelWriter
excel_writer = pd.ExcelWriter('pandas_df.xlsx', engine='xlsxwriter')
# เขียนไปหลาย sheets
df.to_excel(excel_writer, sheet_name='first_sheet')
df.to_excel(excel_writer, sheet_name='second_sheet')
df.to_excel(excel_writer, sheet_name='third_sheet')
# บันทึกไฟล์
excel_writer.save()
print("\nสร้างไฟล์ pandas_df.xlsx พร้อม 3 sheets เรียบร้อย")
ผลลัพธ์
ได้ไฟล์ Excel ที่มี 3 แผ่นงาน: first_sheet, second_sheet, third_sheet ทุกแผ่นมีข้อมูลเหมือนกัน
คำอธิบายเพิ่มเติม:
ExcelWriterเป็น context manager ใช้with pd.ExcelWriter(...) as writer:ได้- engine อื่นๆ: 'openpyxl' (สำหรับ .xlsx), 'xlwt' (สำหรับ .xls เก่า)
- สามารถเขียน DataFrame ต่างกันไปแผ่นละแผ่นได้
- พารามิเตอร์
index=Falseใน to_excel() จะไม่เขียน index ลงไฟล์