![](https://b2dmain-ruk.cdn.jelastic.net/wp-content/uploads/2020/03/campaign-creators-774sCXD0dDU-unsplash-1024x683.jpg)
ในปัจจุบันที่เรื่องข้อมูลเป็นสิ่งสำคัญ ยิ่งเทรนด์ของ Data Science ที่กำลังมาแรง และมีความสำคัญมากขึ้นทุกวัน และหนึ่งในรูปแบบของข้อมูลที่เราน่าจะคุ้นเคยกันดีก็น่าจะเป็นไฟล์ Microsoft Excel นั่นเอง เพราะฉะนั้นวันนี้เราจะมาทำการ อ่าน / เขียน / บันทึก ไฟล์ Excel ด้วย Python 3 กัน เริ่มกันได้เลย
ก่อนอื่นเนื่องจากว่าวันนี้เราจะใช้ Python 3 ในการเขียนโค้ดวันนี้ แน่นอนว่าในเครื่องต้องมี Python 3 ติดตั้งเอาไว้ให้เรียบร้อย จากติดตั้ง library เสริมที่ต้องใช้ในบทความนี้ เปิด command line ขึ้นมาแล้วพิมพ์คำสั่งติดตั้งตามนี้ได้เลย
pip install pandas
pip install xlsxwriter
pip install xlrd
ถ้าติดตั้งครบแล้วก็ไปขัั้นตอนต่อไปกันได้เลย
อ่านไฟล์ Excel
เราจะใช้ไฟล์ตัวอย่างชื่อ ‘fruits.xlsx’ โดยมีข้อมูลหน้าตาแบบนี้
![](https://b2dmain-ruk.cdn.jelastic.net/wp-content/uploads/2020/03/read.png)
โดยการอ่านไฟล์ Excel นั้นทำได้ง่ายมากๆ ดูตามโค้ดตัวอย่างต่อไปนี้ได้เลย
import pandas as pd
dataframe = pd.read_excel (r'fruits.xlsx')
print (dataframe)
เมื่อกดรันแล้วก็จะ print ผลลัพธ์ออกมาแบบนี้
![](https://b2dmain-ruk.cdn.jelastic.net/wp-content/uploads/2020/03/print_read.png)
หรือถ้าจะ print ข้อมูลเฉพาะคอลัมน์ Name ก็ทำได้เพียงแค่ระบุชื่อคอลัมน์เท่านั้น
print (dataframe['Name'])
ก็จะได้ผลลัพธ์ออกมาแบบนี้
![](https://b2dmain-ruk.cdn.jelastic.net/wp-content/uploads/2020/03/print_read_column.png)
เขียนข้อมูลเป็นไฟล์ Excel
เราจะสร้างข้อมูลง่ายๆเป็น Pandas DataFrame จากนั้นเซฟเป็นไฟล์ .xlsx ด้วย xlsxwriter ลองดูโค้ดและคำอธิการทำงานแต่ละบรรทัดตามโค้ดด้านล่างนี้กัน
import xlsxwriter
import pandas as pd
# สร้าง DataFrame ที่มี 1 คอลัมน์ชื่อ 'Data'
dataframe = pd.DataFrame({'Data' : [20, 30, 45, 12, 33, 9]})
# สร้าง Pandas Excel Writer เพื่อใช้เขียนไฟล์ Excel โดยใช้ Engine เป็น xlsxwriter
# โดยตั้งชื่อไฟล์ว่า 'simple_data.xlsx'
writer = pd.ExcelWriter('simple_data.xlsx', engine='xlsxwriter')
# นำข้อมูลที่สร้างไว้ในตัวแปร dataframe เขียนลงไฟล์
dataframe.to_excel(writer, sheet_name='หน้าที่1')
# จบการทำงาน Pandas Excel writer และเซฟข้อมูลออกมาเป็นไฟล์ Excel
writer.save()
พอกดรันแล้วลองดูที่โฟลเดอร์เดียวกันกับโค้ดนี้ก็จะพบว่ามีไฟล์ simple_data.xlsx ถูกสร้างขึ้นมา ลองเปิดก็จะพบว่ามีข้อมูลอยู่แบบนี้
![](https://b2dmain-ruk.cdn.jelastic.net/wp-content/uploads/2020/03/read.png)
แก้ไขไฟล์ Excel
เราจะทำการเพิ่มข้อมูล orange ต่อท้ายเข้าไปในไฟล์ fruits.xlsx ที่ใช้ในตอนอ่านไฟล์กัน ลองดูตัวอย่างโค้ดพร้อมคำอธิบายกันได้เลย
import xlsxwriter
import pandas as pd
# อ่านข้อมูลที่มีอยู่ในไฟล์เดิม
readDataframe = pd.read_excel (r'fruits.xlsx')
# สร้างข้อมูลใหม่เป็นข้อมูลของ orange
newDataframe = pd.DataFrame({'Name' : ['orange'], 'Price': [88], 'Amount': [15]})
# นำข้อมูล orange ที่สร้างใหม่รวมเข้ากับข้อมูลเก่าที่อ่านจากไฟล์
frames = [readDataframe, newDataframe]
result = pd.concat(frames)
# สร้าง Writer เหมือนกับตอนเขียนไฟล์
writer = pd.ExcelWriter('fruits.xlsx', engine='xlsxwriter')
# นำข้อมูลชุดใหม่เขียนลงไฟล์และจบการทำงาน
result.to_excel(writer, index = False)
writer.save()
เมื่อกดรันเสร็จแล้วลองเปิดดูไฟล์ fruits.xlsx ก็จะมีข้อมูลเพิ่มมาอีกแถวก็คือ orange นั่นเอง
![](https://b2dmain-ruk.cdn.jelastic.net/wp-content/uploads/2020/03/edit.png)
ได้ลองดูแล้วก็น่าจะเห็นว่าการใช้งาน Python 3 กับ ไฟล์ Excel นั้นไม่ยากเลยใช่มั้ยครับ ลองนำไปปรับใช้กันได้นะครับ