Excel là bảng tính nổi tiếng nhất và hầu như mọi người dùng máy tính đều thoải mái với ý tưởng quản lý dữ liệu qua spreadsheet. Cuối cùng, một số chương trình Python phải tương tác với Excel. Nhiều thư viện Python có sẵn để tạo, đọc và ghi vào file Excel. Chúng ta sẽ xem ví dụ của một vài thư viện quan trọng dưới đây.
Sử dụng openpyxl
Thư viện này đọc/ghi file Excel 2010 xlsx/xlsm/xltx/xltm. Trong ví dụ dưới đây, chúng ta tạo một worksheet Excel, gán dữ liệu cho ô và cuối cùng lưu file đến vị trí mong muốn. Mô-đun có nhiều phương thức built-in có thể dùng cho việc này.
Ví dụ
# openpyxl
from openpyxl import Workbook
BangTinh = Workbook()
# lấy worksheet đang hoạt động
worksheet = BangTinh.active
# Dữ liệu có thể gán trực tiếp cho ô
worksheet['A1'] = 50
# Các hàng cũng có thể thêm vào
worksheet.append([5, 15, 25, 35, 45, 55])
worksheet.append([9, 19, 29, 39, 49, 59])
# Kiểu Python tự động chuyển đổi
import datetime
t1 = datetime.datetime.now()
worksheet['A1'] = t1.year
worksheet['A2'] = t1
# Lưu file
BangTinh.save("E:\\openpyxl.xlsx")
Kết quả
Chạy mã trên cho kết quả sau:
Sử dụng xlwt
Đây là thư viện cho nhà phát triển tạo file spreadsheet tương thích Microsoft Excel phiên bản 95 đến 2003. Chúng ta không chỉ ghi giá trị vào ô, còn định dạng giá trị. Giá trị có thể in đậm, màu sắc, in nghiêng, kiểm soát cỡ font. Trong ví dụ dưới đây, ta định dạng số ghi và làm cho chúng màu xanh dương.
Ví dụ
import xlwt
from datetime import datetime
BangTinh = xlwt.Workbook()
worksheet = BangTinh.add_sheet('Newsheet1')
format1 = xlwt.easyxf('font: name Times New Roman, color-index blue, bold on', num_format_str='#,##0.00')
format2 = xlwt.easyxf(num_format_str='D-MMM-YY')
worksheet.write(0, 0, datetime.now(), format2)
worksheet.write(0, 1, datetime.now().strftime("%B"), format2)
worksheet.write(0, 2, datetime.now().strftime("%A"), format2)
worksheet.write(1, 0, 5369.2, format1)
worksheet.write(1, 1, 1926.5, format1)
worksheet.write(1, 2, 4896.2, format1)
worksheet.write(2, 0, 5)
worksheet.write(2, 1, 10)
worksheet.write(2, 2, xlwt.Formula("A3+B3"))
BangTinh.save('E:\\xlwt_spreadsheet.xls')
Kết quả
Chạy mã trên cho kết quả sau:
Sử dụng xlsxwriter
Mô-đun này tạo file Excel phiên bản 2007. Nó có nhiều tính năng hơn hai mô-đun tạo file Excel trên. Nó ghi text, số, công thức và siêu liên kết vào nhiều worksheet. Trong ví dụ dưới đây, không chỉ định dạng text trong sheet, mà còn thêm hình ảnh vào sheet.
Ví dụ
import xlsxwriter
BangTinh = xlsxwriter.Workbook('E:\\xlsxw_spreadsheet.xlsx')
sheet = BangTinh.add_worksheet()
sheet.set_column('A:A', 18)
# Thêm định dạng in đậm để làm nổi bật ô
bold = BangTinh.add_format({'bold': True})
# Text đơn giản
sheet.write('A1', 'Freelancer', bold)
sheet.write('A2', 'Work')
sheet.write('A3', 100)
sheet.write('A4', 1000)
sheet.write('B1', 'DECIMAL', bold)
sheet.write('B2', 17.1)
sheet.write('B3', 29.6)
sheet.write('B4', 45.9)
sheet.write('C1', 'POSITIVE', bold)
sheet.write('C2', 69)
sheet.write('C3', 53)
sheet.write('C4', 36)
sheet.write('D1', 'NEGATIVE', bold)
sheet.write('D2', -89)
sheet.write('D3', -26)
sheet.write('D4', -15)
# Chèn hình ảnh
sheet.insert_image('E5', 'E:\\firefox.JPG')
BangTinh.close()
Kết quả
Chạy mã trên cho kết quả sau:


