23 เมษายน 2558

Published 4/23/2558 by with 0 comment

จัดการไฟล์ Excel ด้วยภาษา Python

สวัสดีผู้อ่านทุกท่านครับ หลาย ๆ ท่านก่อนที่จะมาสายเขียนโปรแกรมกัน คงรู้จักกับ MS Excel กันมาบ้างแล้วครับ เป็นโปรแกรมสำหรับงานคำนวณโดยเฉพาะ ทำให้ปัจจุบันนี้ไม่ว่าหน่วยงานไหน ๆ ยังคงใช้ไฟล์ Excel กันอยู่ครับ บทความนี้จะพาผู้อ่านไปจัดการกับไฟล์ Excel ด้วยภาษา Python

สร้างไฟล์ Excel ด้วยภาษา Python


ขอแนะนำโมดูลสำหรับใช้จัดการกับไฟล์ Excel ด้วยภาษา Python สองโมดูลดังนี้ครับ

  • xlwt

  • XlsxWriter


ทั้งสองโมดูลนี้ถูกพัฒนาโดย John Machin รองรับการทำงานทั้งใน Python 2 และ Python 3 และยังใช้ License: BSD อีกด้วยครับ แต่สองโมดูลนี้มีจุดต่างกันดังนี้ครับ
โดยโมดูล xlwt จะรองรับการสร้างไฟล์ของ MS Excel 97/2000/XP/2003 โดยไฟล์จะเป็น XLS เท่านั้น ส่วนโมดูล XlsxWriter จะรองรับ Excel 2007 ขึ้นไปโดยจะเป็นไฟล์ XLSX

วิธีการติดตั้ง
xlwt
สามารถติดตั้งได้โดยใช้คำสั่ง pip:
pip install xlwt

อ่านเอกสารการใช้งาน xlwt ได้ที่ https://xlwt.readthedocs.org/en/latest/index.html

XlsxWriter
สามารถติดตั้งได้โดยใช้คำสั่ง pip:
pip install xlsxwriter

อ่านเอกสารการใช้งาน XlsxWriter ได้ที่ https://xlsxwriter.readthedocs.org




 

อ่านไฟล์ Excel ด้วย Python


ผมแนะนำโมดูล openpyxl ครับ สามารถอ่านไฟล์และสร้างไฟล์ Excel ได้ โดยรองรับไฟล์ xlsx/xlsm ของ Excel 2007 ครับ ใช้งานได้ทั้ง Python 2 และ Python 3 ใช้ MIT License ครับ สามารถติดตั้งได้โดยใช้คำสั่ง pip:
pip install openpyxl

ตัวอย่างการเขียนไฟล์

[python]
from openpyxl import Workbook
wb = Workbook()

# กำหนดให้ตัวแปร ws แทน worksheet
ws = wb.active

# ตั้งชื่อ worksheet
ws.title = "hello"

# ใส่ข้อมูลเข้าไปยังเซลส์ที่กำหนด
ws['A1'] = "สวัสดี :D"

# นอกจากนี้ยังสามารถรวมแถวได้
ws.append([1, 2, 3])

# ชนิดข้อมูลภาษา Python จะถูกแปลงโดยอัตโนมัติ
import datetime
ws['A2'] = datetime.datetime.now()

# บันทึกไฟล์
wb.save("sample.xlsx")
[/python]

ผลลัพธ์

สร้างไฟล์ Excel ด้วยภาษา Python

ตัวอย่างการอ่านไฟล์

[python]
from openpyxl import load_workbook
wb = load_workbook(filename = 'sample.xlsx') #อ่านไฟล์ sample.xlsx
sheet_ranges = wb['hello'] #เรียกใช้ worksheet ที่ชื่อว่า hello
print(sheet_ranges['A1'].value) #อ่านค่าจากเซลส์ A1 ใน worksheet ของ hello
[/python]

ผลลัพธ์
สวัสดี :D

อ่านเอกสารการใช้งานโมดูล openpyxl ได้ที่ http://openpyxl.readthedocs.org
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)