TẠO BẢNG CHẤM CÔNG TỰ ĐỘNG THEO NGÀY, THÁNG, NĂM TRONG EXCEL SỬ DỤNG PYTHON P9 (CHỈNH SỬA FILE DATA TOTAL)

CÁC NỘI DUNG CHÍNH
I. YÊU CẦU ĐẦU VÀO
1. CHUẨN BỊ NỘI DUNG
2. YÊU CẦU KIẾN THỨC
3. ĐỀ BÀI VÀ YÊU CẦU ĐẶT RA
II. CÁC BƯỚC THỰC HIỆN
Xây dựng code tự động chỉnh sửa định dạng cho workbook Data total
III. KẾT LUẬN
1. Trường hợp vận dụng 
2. Ưu điểm
3. Nhược điểm

I. YÊU CẦU ĐẦU VÀO

1. CHUẨN BỊ NỘI DUNG

Để bắt đầu bài học, các bạn cần có ít nhất 01 máy tính để bàn hoặc laptop, trong đó đã cài đặt:

a. Python

b. Visual Studio Code

c. Microsoft Excel từ 2007 trở lên để tối ưu việc lập trình bằng python.

d. Teamviewer hoặc Ultraviewer để được các giảng viên và trợ giảng của trang web Pyan.vn hỗ trợ 24/7 nếu các bạn bị vướng mắc trong quá trình code.

2. YÊU CẦU KIẾN THỨC

Đối với bài học này, các bạn cần nẵm vững các kiến thức sau:

a. Cách sử dụng vòng lặp FOR

b. Cách sử dụng hàm điều kiện IF

c. Cách sử dụng vòng lặp WHILE

d. Nếu chưa nắm vững kiến thức, các bạn có thể trao đổi thêm với các giảng viên và trợ giảng của trang web Pyan.vn để được hỗ trợ.

3. ĐỀ BÀI VÀ YÊU CẦU ĐẶT RA

a. Đề bài:

Tạo một bảng chấm công tự động theo ngày, tháng, năm trong excel sử dụng python.

b. Yêu cầu đặt ra:

Lần lượt xây dựng từng thành phần của bảng chấm công bằng code. Cuối cùng chỉ cần 1 click chuột là ta có 1 bảng chấm công tự động theo ngày, tháng, năm.

Bảng dữ liệu ban đầu:

Bảng dữ liệu thu được sau khi code hoàn chỉnh

II. CÁC BƯỚC THỰC HIỆN

Xây dựng code tự động chỉnh sửa định dạng cho workbook Data total

Trong bài học trước chúng tôi đã hướng dẫn các bạn cách để tổng hợp bảng chấm công của 3 phòng ban khác nhau vào chung một workbook data total. Tuy nhiên chúng ta vẫn còn hai vấn đề nữa trong file data total này thứ nhất là số thứ tự trong file này chưa hợp lý, vấn đề thứ hai là định dạng của file được tạo ra chưa phù hợp để làm thành một bản báo cáo. Trong bài học này chúng tôi sẽ hướng dẫn các bạn cách khắc phục hai vấn đề này.

Đầu tiên chúng ta sẽ mở file script Python Merge worbook lên. Trước hết, ta sẽ chuyển hết các câu lệnh của bài học trước về dạng ghi chú thông qua tổ hợp phím Ctrl cộng gạch chéo. Tiếp theo chúng ta sẽ lần lượt xây dựng công thức để chuyển sheet1 của workbook data total về dạng bản báo cáo. Phía trên, bên phải từ cột A1 đến cột C2 là phần tên công ty và tên phòng ban, ta sử dụng vòng lặp for với biến i trong range từ 1 đến 2, các bạn khai báo biến HR dept là range cell từ A I đến D I, lần lượt ta sử dụng các công thức mà chúng ta đã học trong chương 6 về định dạng dữ liệu. Đầu tiên ta sử dụng hàm merge để merge các cột từ cột A đến cột D của hàng thứ nhất và hàng thứ hai, tiếp theo ta sử dụng hàm api chấm Font chấm Bold để chuyển các dòng chữ này về dạng in đậm. Tiếp đó ta fill color cho các dòng này thành màu có mã rgb là 164, 211, 238. Sau đó, ta chuyển màu của chữ về dạng color index bằng 3 là màu đỏ. Cuối cùng, ta sử dụng hàm api để căn chỉnh tên công ty và tên phòng ban về chính giữa thông qua phương thức horizontal alignment và vertical alignment. Các bạn lưu ý, chúng ta phải import module constants để có thể sử dụng được hàm này. Các bạn thực thi code, như các bạn đã thấy, tên công ty và tên phòng ban đã thay đổi định dạng theo những chỉnh sửa của chúng ta. 

Phần tiếp theo là tiêu đề của bảng tổng hợp thông tin. Đầu tiên, các bạn khai báo biến Name of sheet là range cell từ e4 đến f5. Tương tự như phần trước, các bạn cũng merge các cell này lại với nhau. Tiếp theo, ta chọn màu sắc cho chữ là màu có giá trị tham số colorindex là 11. Các bạn có thể lựa chọn các màu sắc khác nhau tùy theo nhu cầu của các bạn. Tiếp đó, các bạn căn chỉnh cho phần này về giữa thông qua phương thức horizontal alignment và vertical alignment.  Tiếp theo, các bạn dùng hàm api để tô đậm cho toàn bộ các chữ từ cell E4 đến F6, đồng thời chúng ta fill color cho phần này thành màu có mã RGB là 176, 226, 255. Riêng đối với cell F6 là cell chỉ năm, ta lựa chọn fill color thành màu vàng có mã RGB là 255, 255, 0. Các bạn thực thi code, như các bạn đã thấy, phần tiêu đề của bảng tổng hợp thông tin đã được thay đổi theo các thiết lập của chúng ta.  Sau đó, chúng ta sẽ thay đổi định dạng của bảng chấm công cho toàn bộ các phòng ban. Đầu tiên là phần các tiêu đề của các cột từ cột B đến cột K. Các bạn sử dụng vòng lặp for với biến I trong range từ 2 đến 11. Trong vòng lặp for, ta dùng hàm merge để merge các hàng 8 và hàng 9 của cột thứ I lại với nhau. Tiếp đó, ta khai báo biến range report là range cell của các cell hàng 8 cột i. Lần lượt, các bạn sử dụng các công thức để fill color cho range này thành màu có mã RGB là 176, 226, 255. Ta sử dụng hàm api để chỉnh chế độ WrapText và tô đậm cho range cell này. Tiếp đó, các bạn căn chỉnh cho range cell về giữa tương tự các phần trước. Sau đó, ta chỉnh cho chiều rộng cột của lần lượt cột B là 5, từ cột C đến cột F là 15, từ cột H đến cột K là 7. Các bạn thực thi code, kết quả trả ra là các tiêu đề của các cột đã được căn chỉnh theo định dạng mà chúng ta lựa chọn.

Tiếp theo, ta sẽ thay đổi lại giá trị trong cột B sao cho hợp lý. Đầu tiên, các bạn khai báo biến last row ID hoàn toàn tương tự như trong bài học trước. Tiếp đó, ta sử dụng vòng lặp while với biến j = 10, j nhỏ hơn last row ID + 1. Trong vòng lặp while, ta gán cho giá trị của cell B j bằng. Ta sẽ xây dựng công thức trong excel trước. Tại cell B10, ta dùng hàm điều kiện If để kiểm tra xem nếu cell bên phải là cell C10 bằng rỗng thì sẽ trả ra kết quả rỗng, nếu không thì sẽ trả ra hàm if khác. Trong hàm If này, nếu cell phía trên là cell B9 bằng No thì sẽ trả ra là 1, nếu không thì sẽ trả ra là B9 cộng 1. Các bạn bấm enter. Kết quả trả ra là 1. Bây giờ, các bạn sẽ copy công thức vào script Python để chỉnh sửa. Ta dùng phương thức format f để chuyển toàn bộ các giá trị 10 thành j, giá trị 9 thành j trừ 1. Các bạn cho biến j tăng thêm 1 đơn vị để duyệt phần tử tiếp theo. Sau đó, chúng ta sẽ fill color cho bảng dữ liệu Trong vòng lặp for với biến I trong range từ 10 đến last row ID cộng 1, ta sử dụng hàm điều kiện if để kiểm tra xem I có phải là số chẵn, nếu thỏa thì ta sẽ fill color cho các hàng trong range cell B I đến K I thành màu có mã RGB là 176, 196, 222. Nếu không thì ta sẽ dùng mệnh đề else để fill color cho các cột đó thành màu trắng có mã RGB là 255, 255, 255. Cuối cùng, chúng ta sẽ tạo borders cho toàn bộ vùng dữ liệu thông qua vòng lặp for. Trong vòng lặp for với biến i trong khoảng từ 7 đến 12, ta áp dụng công thức sht chấm range từ cell B8 đến cell K last row ID chấm api chấm Borders với tham số I chấm LineStyle bằng 1. Các bạn thực thi code, kết quả là sheet1 của workbook data total đã có định dạng của một bản báo cáo, đồng thời cột số thứ tự đã được thay đổi từ bé đến lớn. Chúng ta đã khắc phục được những vấn đề mà chúng tôi đã nêu ra từ đầu bài học. 

Như vậy, chúng tôi đã hướng dẫn các bạn hoàn thành xong bảng chấm công theo ngày tháng năm cho trường hợp thứ 2, là với công ty lớn có nhiều Phòng ban và mỗi phòng ban có một bảng chấm công riêng

III. KẾT LUẬN

1. Trường hợp vận dụng

Sử dụng bảng chấm công tự động theo ngày, tháng, năm nhằm mục đích quản lý nhân sự – hành chính.

2. Ưu điểm

Sau khi đã xây dựng công thức xong thì ta chỉ cần thay các giá trị tham số mà ta dùng để so sánh như trong bài học là có thể áp dụng được.

3. Nhược điểm

Số lượng code tương đối nhiều, đối với người mới học có thể phát sinh lỗi trong quá trình code, yêu cầu sự kiên trì, tỉ mỉ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *