Python: Creating Excel files with XlsxWriter
ในบทความนี้จะลองมาใช้ lib ตัวนึงที่นำ Python มาใช้สร้าง excel file นั่นคือ XlsxWriter ซึ่งจากที่อ่าน doc เขาบอกว่า 100% compatible กับ Excel xlsx files เลยทีเดียว ไปลองทดสอบกันเลยดีกว่า
- ติดตั้ง package ก่อน
pip install xlsxwriter
2. ทดสอบ write data เข้าไปใน specific cells ที่เรากำหนด
import os.path
import xlsxwriter
folder_path = '/Users/atthana/Desktop/excels/'
excel_path = os.path.join(folder_path, 'codium_2021.xlsx')
workbook = xlsxwriter.Workbook(excel_path) # กำหนด path ที่จะ save
worksheet = workbook.add_worksheet(name='Members')
worksheet.write('A1', 'Id.')
worksheet.write('B1', 'Name')
worksheet.write('C1', 'E-mail')
worksheet.write('D1', 'Position')
workbook.close() # ปิดไฟล์ excel เมื่อเขียนเสร็จ
3. ทดลอง refactor code เพื่อให้เป็นสัดเป็นส่วนและเพิ่มในส่วนของการเพิ่ม content เข้าไปตามแนว column (using the row-column notation) ด้วย for-loop
def add_content_by_column(worksheet):
row = 1
column = 1
names = ['Norak', 'Ten', 'Earch', 'Peter', 'Atthana', 'Kukkik', 'Stefan', 'Saeed']
for name in names:
worksheet.write(row, column, name)
row += 1
4. จากนั้นทดสอบเพิ่ม data เข้าไปใน cell ที่เหลือ แบบ List ซ้อนกัน โดยใช้ for-loop และระบุตำแหน่งของ cell ที่จะว่าง data เข้าไป
def add_content_of_id_email_position():
data = (
[1, 'norak@codium.co', 'Senior dev'],
[2, 'ten@codium.co', 'Senior dev'],
[3, 'earth@codium.co', 'Senior dev'],
[4, 'peter@codium.co', 'Senior dev'],
[5, 'atthana@codium.co', 'Grassroot dev'],
[6, 'kukkik@codium.co', 'Senior dev'],
[7, 'stefan@codium.co', 'Senior dev'],
[8, 'saeed@codium.co', 'Senior dev'],
)
row = 1
column = 0
for dev_id, email, position in data:
work_sheet.write(row, column, dev_id)
work_sheet.write(row, column + 2, email)
work_sheet.write(row, column + 3, position)
row += 1
5. ทดลองเพิ่มในส่วนของ format cell เข้าไป
format1 = workbook.add_format({'bg_color': '#4285F4',
'font_color': '#000000',
'bold': True,
})
worksheet.conditional_format('A1:D1', {'type': 'cell',
'criteria': '>=',
'value': 50,
'format': format1})
จิงๆแล้ว working with excel ยังมี package ตัวอื่นๆอีกหลายตัวคับ เช่น
- openpyxl
- xlrd
- xlwt
- xlutils
- pyexcel
- etc.
แล้วพบกันใหม่คับ