Trong MS Excel, Bảng là một dải ô đã được nhóm thành một thực thể duy nhất. Nó có thể được tham chiếu từ các công thức và có các thuộc tính định dạng chung. Một số tính năng như tiêu đề cột, bộ lọc tự động, tổng số hàng, công thức cột có thể được xác định trong bảng trang tính
Phương thức add_table[]
Phương thức trang tính add_table[] được sử dụng để thêm một phạm vi ô dưới dạng bảng
worksheet.add_table[first_row, first_col, last_row, last_col, options]
Cả hai phương pháp, ký hiệu 'A1' hoặc 'Hàng/Cột' tiêu chuẩn đều được cho phép để chỉ định phạm vi. Phương thức add_table[] có thể nhận một hoặc nhiều tham số tùy chọn sau. Lưu ý rằng ngoại trừ tham số phạm vi, các tham số khác là tùy chọn. Nếu không được cung cấp, một bảng trống sẽ được tạo
Thí dụ
dữ liệu
Tham số này có thể được sử dụng để chỉ định dữ liệu trong các ô của bảng. Nhìn vào ví dụ sau -
import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data}] wb.close[]
đầu ra
Đây là kết quả -
dòng tiêu đề
Tham số này có thể được sử dụng để bật hoặc tắt hàng tiêu đề trong bảng. Nó được bật theo mặc định. Hàng tiêu đề sẽ chứa các chú thích mặc định như Cột 1, Cột 2, v.v. Bạn có thể đặt chú thích bắt buộc bằng cách sử dụng tham số cột
Cột
Thí dụ
Thuộc tính này được sử dụng để đặt chú thích cột
import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data, 'columns': [ {'header': 'Name'}, {'header': 'physics'}, {'header': 'Chemistry'}, {'header': 'Maths'}] }] wb.close[]
đầu ra
Hàng tiêu đề hiện được đặt như hình -
Bộ lọc tự động
Thông số này được BẬT, theo mặc định. Khi được đặt thành TẮT, hàng tiêu đề không hiển thị mũi tên thả xuống để đặt tiêu chí lọc
Tên
Trong bảng tính Excel, các bảng được đặt tên là Table1, Table2, v.v. Tham số name có thể dùng để đặt tên bảng theo yêu cầu
ws.add_table["A1:E4", {'data':data, 'name':'marklist'}]
Công thức
Có thể tạo cột có công thức bằng cách chỉ định thuộc tính phụ của công thức trong các tùy chọn cột
Thí dụ
Trong ví dụ sau, thuộc tính tên của bảng được đặt thành 'danh sách đánh dấu'. Công thức cho cột 'Tổng cộng' E tính tổng các điểm và được gán giá trị của thuộc tính con công thức
Trong bài cuối cùng của loạt bài này, tôi sẽ tiếp tục tự động hóa Excel bằng Python và chỉ cho bạn cách sử dụng một vài lệnh bên ngoài Tab Trang chủ
Trong bài đăng này, tôi sẽ chỉ cho bạn cách
- Chèn hình ảnh
- Lập biểu đồ
- Viết công thức
- Làm bảng
và kết thúc loạt bài này với một mẹo về năng suất trong khoa học dữ liệu
Cài đặt
Như bài trước mình sẽ dùng
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
0 để làm bảng tính excel. Nhưng có thêm một thư viện để cài đặt nếu bạn muốn làm theo hướng dẫn này. PIL [Thư viện hình ảnh Python]. Nếu không, bạn sẽ thấy lỗi nàyKhi tôi googled nó, phiên bản mới nhất của PIL là dành cho Python 1. 5. 2—wtf? . Thứ tôi cần cài đặt là thư viện
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
1pip install --user Pillow
Chèn hình ảnh
Để chèn một hình ảnh từ đĩa, tôi có thể tạo một đối tượng
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
2, sau đó thêm hình ảnh vào trang tính bằng cách neo hình ảnh vào ô trên cùng bên trái của nóVí dụ, trong đoạn mã này, tôi đặt một hình ảnh trên ô
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
3from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
và kết quả trông giống như
Thu nhỏ hình ảnh
Tôi cũng có thể sửa đổi
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
2 trước khi chèn để chia tỷ lệ hình ảnh của mình. Đặc biệt, tôi muốn thay đổi hai thuộc tính- Chiều cao
- bề rộng
Ví dụ: tôi có thể tăng chiều cao lên 50% so với ảnh gốc trong mã của mình
import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data}] wb.close[]1
Kết quả là, bảng tính trông giống như
biểu đồ
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
0 chỉ hỗ trợ một số biểu đồ hạn chế. Để xem danh sách đầy đủ các biểu đồ được hỗ trợ, vui lòng tham khảo tài liệu- Biểu đồ trong openpyxl
Lập biểu đồ
Biểu đồ trong Excel là một cách để hiển thị dữ liệu được tham chiếu. Vì vậy, mục tiêu của tôi ở đây là đặt một phạm vi ô [giả sử, một lưới ô hình chữ nhật] mà tôi muốn vẽ biểu đồ
Giả sử tôi có một số dữ liệu tên là
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
6 [số lượng 15 hàng đầu tiên của dữ liệu bệnh tim UCI. ]import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data}] wb.close[]4
Khi tôi đã ghi dữ liệu vào trang tính, tôi có thể tạo một biểu đồ tại ô
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
7 bằng cách đặt tham chiếu của biểu đồ thanh của tôi tới các ô dữ liệu tương ứngimport xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data}] wb.close[]6
để có được
Tôi đã sử dụng
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
8 ở đây để chọn một ô hình chữ nhật cho dữ liệu của mình. Có một cách khác để chọn phạm vi dữ liệu bằng cách xác định một hộp có số cột và hàngimport xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data}] wb.close[]8
Bỏ qua một trong các giá trị tối đa hoặc tối thiểu có nghĩa là chúng tôi chỉ chọn trên một cột hoặc một hàng. Biểu đồ kết quả là như nhau
Thuộc tính biểu đồ
Dựa trên tài liệu, dường như có một số thuộc tính tôi có thể điều chỉnh cho biểu đồ của mình
Phong cách
Nếu tôi thêm dòng này,
import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data}] wb.close[]9
sau đó, nó tạo ra một biểu đồ hơi khác với các đường viền màu trắng xung quanh các thanh. Tôi chưa tìm thấy bất kỳ tài liệu nào về số ánh xạ tới kiểu nào trong Excel—vì vậy nếu bạn tìm ra, hãy cho tôi biết
thuộc tính không xác định
Có một vài thuộc tính trong trang biểu đồ của openpyxl mà tôi thấy không hiển thị bất cứ thứ gì. tôi. e
import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data, 'columns': [ {'header': 'Name'}, {'header': 'physics'}, {'header': 'Chemistry'}, {'header': 'Maths'}] }] wb.close[]0
viết công thức
Tôi có thể viết một công thức Excel bằng cách đặt một ô thành đúng tên công thức và phạm vi dữ liệu. Ví dụ để tính tổng của cột B, em có thể gọi hàm
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
9 trong Excel bằng cách viếtimport xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data, 'columns': [ {'header': 'Name'}, {'header': 'physics'}, {'header': 'Chemistry'}, {'header': 'Maths'}] }] wb.close[]2
mang lại cho tôi
Định dạng dưới dạng bảng
Bảng trong Excel, giống như biểu đồ, là tham chiếu đến một nhóm ô. Trong
from openpyxl import Workbook
from openpyxl.drawing.image import Image
workbook = Workbook[]
coffee_image = Image['coffee.png']
worksheet.add_image[coffee_image, 'C2']
worksheet['C1'] = 'Me drinking coffee and kicking back'
workbook.save['example.xlsx']
workbook.close[]
0, có một đối tượng import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data}] wb.close[]11 mà tôi có thể tạo kiểu theo cùng một tên kiểu bảng từ Excel
Ví dụ: nếu tôi muốn sử dụng Table Style Light 1 từ Excel trên cùng một dữ liệu mà tôi đã sử dụng cho
import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data}] wb.close[]12, trước tiên tôi có thể tìm tên từ Excel
sau đó tôi có thể viết
import xlsxwriter wb = xlsxwriter.Workbook['hello.xlsx'] ws = wb.add_worksheet[] data = [ ['Namrata', 75, 65, 80], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 75], ] ws.add_table["A1:D4", {'data':data, 'columns': [ {'header': 'Name'}, {'header': 'physics'}, {'header': 'Chemistry'}, {'header': 'Maths'}] }] wb.close[]6
và nó mang lại cho tôi
Đối với tài liệu, xem
- bảng trang tính
Kết thúc
Cảm ơn bạn đã đọc hết 8 bài viết của PyderPuffGirls. [Và cảm ơn Keith, vì đã nghĩ ra tên cho phiên họp của chúng tôi. ]
Loạt bài đăng này xuất phát từ quan sát của tôi rằng nhiều người trong lĩnh vực phân tích đã dùng thử Python nhưng không thấy nó có thể giúp họ như thế nào trong công việc. Tôi hy vọng rằng thông qua các bài đăng này, bạn đã tìm thấy 2-3 điều mà bạn có thể sử dụng để tự động hóa các phần nhàm chán của công việc phân tích—có thể tái đầu tư cho công việc thử thách và bổ ích hơn
Vì vậy, tôi muốn kết thúc bài đăng này bằng một thủ thuật cuối cùng
Thủ thuật cuối cùng
Ngay cả khi bạn đã làm cho mình hiệu quả hơn thông qua tự động hóa
Nhẹ nhàng vượt quá mong đợi của người dùng
bởi vì rất hấp dẫn để cung cấp cho người dùng những gì họ muốn khi nó đã sẵn sàng
Nếu tôi có thể nhận được báo cáo trong 5 phút, thì tôi có thể gửi email cho họ kết quả vào phút thứ 6, phải không?
Thay vì cung cấp cho người dùng những gì họ muốn, hãy cung cấp cho họ những gì họ cần. Gửi các báo cáo theo cùng một lịch trình để giúp bạn có thêm thời gian. Sử dụng thêm thời gian cho các vấn đề mà chỉ trí óc con người mới có thể giải quyết để khám phá và phát triển thông tin chuyên sâu về dữ liệu. Tôi nghĩ đây là nơi thú vị thực sự trong khoa học dữ liệu. Vì vậy, hãy chấm dứt những thứ nhàm chán và vui chơi