Bảng tính Excel là một trong những thứ bạn có thể phải xử lý vào một lúc nào đó. Có thể là do sếp của bạn yêu thích chúng hoặc vì hoạt động tiếp thị cần chúng, bạn có thể phải học cách làm việc với bảng tính và đó là lúc biết rằng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 có íchBảng tính là một cách rất trực quan và thân thiện với người dùng để thao tác với các bộ dữ liệu lớn mà không cần bất kỳ nền tảng kỹ thuật nào trước đó. Đó là lý do tại sao chúng vẫn được sử dụng phổ biến cho đến ngày nay
Trong bài viết này, bạn sẽ học cách sử dụng openpyxl để
- Thao tác với bảng tính Excel một cách tự tin
- Trích xuất thông tin từ bảng tính
- Tạo bảng tính đơn giản hoặc phức tạp hơn, bao gồm thêm kiểu, biểu đồ, v.v.
Bài viết này được viết cho các nhà phát triển trung cấp, những người có kiến thức khá tốt về cấu trúc dữ liệu Python, chẳng hạn như dicts và list, nhưng cũng cảm thấy thoải mái với OOP và các chủ đề ở cấp độ trung cấp khác
Tải xuống tập dữ liệu. Nhấp vào đây để tải xuống tập dữ liệu cho bài tập openpyxl mà bạn sẽ theo dõi trong hướng dẫn này
Trước khi bắt đầu
Nếu bạn từng được yêu cầu trích xuất một số dữ liệu từ cơ sở dữ liệu hoặc tệp nhật ký vào bảng tính Excel hoặc nếu bạn thường xuyên phải chuyển đổi bảng tính Excel thành một số dạng lập trình có thể sử dụng được hơn, thì hướng dẫn này rất phù hợp với bạn. Hãy nhảy vào đoàn lữ hành
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4Loại bỏ các quảng cáoTrường hợp sử dụng thực tế
Trước tiên, khi nào bạn cần sử dụng một gói như
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 trong một kịch bản trong thế giới thực? Nhập sản phẩm mới vào cơ sở dữ liệu
Bạn chịu trách nhiệm về công nghệ trong một công ty cửa hàng trực tuyến và sếp của bạn không muốn trả tiền cho một hệ thống CMS đắt tiền và tuyệt vời
Mỗi khi họ muốn thêm sản phẩm mới vào cửa hàng trực tuyến, họ sẽ đưa cho bạn một bảng tính Excel có vài trăm hàng và đối với mỗi bảng, bạn có tên sản phẩm, mô tả, giá, v.v.
Bây giờ, để nhập dữ liệu, bạn sẽ phải lặp lại từng hàng của bảng tính và thêm từng sản phẩm vào cửa hàng trực tuyến
Xuất dữ liệu cơ sở dữ liệu vào bảng tính
Giả sử bạn có một bảng Cơ sở dữ liệu nơi bạn ghi lại tất cả thông tin của người dùng, bao gồm tên, số điện thoại, địa chỉ email, v.v.
Bây giờ, nhóm Tiếp thị muốn liên hệ với tất cả người dùng để cung cấp cho họ một số ưu đãi hoặc khuyến mãi giảm giá. Tuy nhiên, họ không có quyền truy cập vào Cơ sở dữ liệu hoặc họ không biết cách sử dụng SQL để trích xuất thông tin đó một cách dễ dàng
Bạn có thể làm gì để giúp đỡ?
Điều đó sẽ giúp bạn kiếm thêm một miếng bánh trong bữa tiệc sinh nhật tiếp theo của công ty bạn
Thêm thông tin vào bảng tính hiện có
Bạn cũng có thể phải mở một bảng tính, đọc thông tin trong đó và theo logic nghiệp vụ nào đó, nối thêm dữ liệu vào đó
Ví dụ: sử dụng lại kịch bản cửa hàng trực tuyến, giả sử bạn nhận được một bảng tính Excel có danh sách người dùng và bạn cần thêm vào mỗi hàng tổng số tiền họ đã chi tiêu trong cửa hàng của bạn
Dữ liệu này nằm trong Cơ sở dữ liệu và để thực hiện việc này, bạn phải đọc bảng tính, lặp qua từng hàng, tìm nạp tổng số tiền đã chi tiêu từ Cơ sở dữ liệu rồi ghi lại vào bảng tính
Không thành vấn đề đối với
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4Tìm hiểu một số thuật ngữ Excel cơ bản
Dưới đây là danh sách nhanh các thuật ngữ cơ bản mà bạn sẽ thấy khi làm việc với bảng tính Excel
Bảng tính giải thích thuật ngữ hoặc Bảng tính sổ làm việc là tệp chính bạn đang tạo hoặc làm việc với. Worksheet hay SheetA Sheet được dùng để phân chia các loại nội dung khác nhau trong cùng một bảng tính. Một bảng tính có thể có một hoặc nhiều Sheet. CộtA Cột là một đường thẳng đứng và được biểu thị bằng một chữ cái viết hoa. Một. HàngA Hàng là một đường nằm ngang và được biểu thị bằng một số. 1. CellA Ô là sự kết hợp của Cột và Hàng, được biểu thị bằng cả chữ in hoa và số. A1
Bắt đầu với openpyxl
Bây giờ bạn đã biết về những lợi ích của một công cụ như
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4, hãy bắt đầu với nó và bắt đầu bằng cách cài đặt gói. Đối với hướng dẫn này, bạn nên sử dụng Python 3. 7 và openpyxl 2. 6. 2. Để cài đặt gói, bạn có thể làm như sau$ pip install openpyxl
Sau khi cài đặt gói, bạn sẽ có thể tạo một bảng tính siêu đơn giản với mã sau
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
Đoạn mã trên sẽ tạo một tệp có tên
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
0 trong thư mục bạn đang sử dụng để chạy mã. Nếu bạn mở tệp đó bằng Excel, bạn sẽ thấy một cái gì đó như thế nàyTuyệt vời, bảng tính đầu tiên của bạn đã được tạo
Loại bỏ các quảng cáoĐọc bảng tính Excel với openpyxl
Hãy bắt đầu với điều cần thiết nhất mà người ta có thể làm với bảng tính. đọc nó
Bạn sẽ đi từ cách tiếp cận đơn giản để đọc bảng tính đến các ví dụ phức tạp hơn nơi bạn đọc dữ liệu và chuyển đổi nó thành các cấu trúc Python hữu ích hơn
Tập dữ liệu cho Hướng dẫn này
Trước khi đi sâu vào một số ví dụ về mã, bạn nên tải xuống tập dữ liệu mẫu này và lưu trữ ở đâu đó dưới dạng
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
1Tải xuống tập dữ liệu. Nhấp vào đây để tải xuống tập dữ liệu cho bài tập openpyxl mà bạn sẽ theo dõi trong hướng dẫn này
Đây là một trong những bộ dữ liệu bạn sẽ sử dụng trong suốt hướng dẫn này và đó là một bảng tính với một mẫu dữ liệu thực từ các bài đánh giá sản phẩm trực tuyến của Amazon. Bộ dữ liệu này chỉ là một phần rất nhỏ so với những gì Amazon cung cấp, nhưng đối với mục đích thử nghiệm, nó là quá đủ
Cách tiếp cận đơn giản để đọc bảng tính Excel
Cuối cùng, hãy bắt đầu đọc một số bảng tính. Để bắt đầu, hãy mở bảng tính mẫu của chúng tôi
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
0Trong đoạn mã trên, trước tiên bạn mở bảng tính
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
1 bằng cách sử dụng >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
3, sau đó bạn có thể sử dụng >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
4 để xem tất cả các trang tính mà bạn có sẵn để làm việc. Sau đó, >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
5 chọn trang tính có sẵn đầu tiên và trong trường hợp này, bạn có thể thấy rằng nó tự động chọn Trang tính 1. Sử dụng các phương pháp này là cách mở bảng tính mặc định và bạn sẽ thấy nó nhiều lần trong hướng dẫn nàyBây giờ, sau khi mở một bảng tính, bạn có thể dễ dàng lấy dữ liệu từ nó như thế này
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
5Để trả về giá trị thực của một ô, bạn cần thực hiện
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
6. Nếu không, bạn sẽ nhận được đối tượng chính >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
7. Bạn cũng có thể sử dụng phương pháp >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
8 để truy xuất một ô bằng cách sử dụng ký hiệu chỉ mục. Hãy nhớ thêm >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
6 để nhận giá trị thực chứ không phải đối tượng >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
7>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
1Bạn có thể thấy rằng kết quả trả về là như nhau, bất kể bạn quyết định chọn cách nào. Tuy nhiên, trong hướng dẫn này, bạn sẽ chủ yếu sử dụng phương pháp đầu tiên.
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
21Ghi chú. Mặc dù trong Python, bạn đã quen với ký hiệu không có chỉ mục, nhưng với bảng tính, bạn sẽ luôn sử dụng ký hiệu có chỉ mục một trong đó hàng hoặc cột đầu tiên luôn có chỉ mục
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
22Trên đây chỉ cho bạn cách nhanh nhất để mở bảng tính. Tuy nhiên, bạn có thể chuyển các tham số bổ sung để thay đổi cách tải bảng tính
Tùy chọn đọc bổ sung
Có một số đối số mà bạn có thể chuyển đến
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
3 để thay đổi cách tải bảng tính. Những cái quan trọng nhất là hai Booleans sau- read_only tải bảng tính ở chế độ chỉ đọc cho phép bạn mở các tệp Excel rất lớn
- data_only bỏ qua việc tải công thức và thay vào đó chỉ tải các giá trị kết quả
Nhập dữ liệu từ bảng tính
Bây giờ bạn đã học được những kiến thức cơ bản về cách tải bảng tính, đã đến lúc bạn chuyển sang phần thú vị. lặp đi lặp lại và sử dụng thực tế của các giá trị trong bảng tính
Phần này là nơi bạn sẽ tìm hiểu tất cả các cách khác nhau mà bạn có thể lặp lại dữ liệu, cũng như cách chuyển đổi dữ liệu đó thành thứ gì đó có thể sử dụng được và quan trọng hơn là cách thực hiện theo cách của Pythonic
Lặp lại thông qua dữ liệu
Có một số cách khác nhau để bạn có thể lặp lại dữ liệu tùy theo nhu cầu của mình
Bạn có thể cắt dữ liệu bằng cách kết hợp các cột và hàng
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
5Bạn có thể nhận phạm vi hàng hoặc cột
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
Bạn sẽ nhận thấy rằng tất cả các ví dụ trên đều trả về một
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
24. Nếu bạn muốn làm mới bộ nhớ của mình về cách xử lý >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
25 trong Python, hãy xem bài viết về Danh sách và Bộ dữ liệu trong PythonNgoài ra còn có nhiều cách sử dụng trình tạo Python thông thường để xem qua dữ liệu. Các phương pháp chính bạn có thể sử dụng để đạt được điều này là
26>>> # Get all cells from column A >>> sheet["A"] [, , ... , ] >>> # Get all cells for a range of columns >>> sheet["A:B"] [[, , ... , ], [, , ... , ]] >>> # Get all cells from row 5 >>> sheet[5] [, , ... , ] >>> # Get all cells for a range of rows >>> sheet[5:6] [[, , ... , ], [, , ... , ]]
27>>> # Get all cells from column A >>> sheet["A"] [, , ... , ] >>> # Get all cells for a range of columns >>> sheet["A:B"] [[, , ... , ], [, , ... , ]] >>> # Get all cells from row 5 >>> sheet[5] [, , ... , ] >>> # Get all cells for a range of rows >>> sheet[5:6] [[, , ... , ], [, , ... , ]]
Cả hai phương pháp có thể nhận được các đối số sau
28>>> # Get all cells from column A >>> sheet["A"] [, , ... , ] >>> # Get all cells for a range of columns >>> sheet["A:B"] [[, , ... , ], [, , ... , ]] >>> # Get all cells from row 5 >>> sheet[5] [, , ... , ] >>> # Get all cells for a range of rows >>> sheet[5:6] [[, , ... , ], [, , ... , ]]
29>>> # Get all cells from column A >>> sheet["A"] [, , ... , ] >>> # Get all cells for a range of columns >>> sheet["A:B"] [[, , ... , ], [, , ... , ]] >>> # Get all cells from row 5 >>> sheet[5] [, , ... , ] >>> # Get all cells for a range of rows >>> sheet[5:6] [[, , ... , ], [, , ... , ]]
30>>> # Get all cells from column A >>> sheet["A"] [, , ... , ] >>> # Get all cells for a range of columns >>> sheet["A:B"] [[, , ... , ], [, , ... , ]] >>> # Get all cells from row 5 >>> sheet[5] [, , ... , ] >>> # Get all cells for a range of rows >>> sheet[5:6] [[, , ... , ], [, , ... , ]]
31>>> # Get all cells from column A >>> sheet["A"] [, , ... , ] >>> # Get all cells for a range of columns >>> sheet["A:B"] [[, , ... , ], [, , ... , ]] >>> # Get all cells from row 5 >>> sheet[5] [, , ... , ] >>> # Get all cells for a range of rows >>> sheet[5:6] [[, , ... , ], [, , ... , ]]
Các đối số này được sử dụng để đặt ranh giới cho phép lặp
>>>
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
Bạn sẽ nhận thấy rằng trong ví dụ đầu tiên, khi lặp qua các hàng bằng cách sử dụng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
26, bạn sẽ chọn một phần tử >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
24 trên mỗi hàng. Trong khi khi sử dụng >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
27 và lặp qua các cột, thay vào đó, bạn sẽ nhận được một >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
24 trên mỗi cộtMột đối số bổ sung mà bạn có thể chuyển đến cả hai phương thức là Boolean
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
36. Khi nó được đặt thành >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
37, các giá trị của ô được trả về, thay vì đối tượng >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
7>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
2Nếu bạn muốn lặp qua toàn bộ tập dữ liệu, thì bạn cũng có thể sử dụng trực tiếp các thuộc tính
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
39 hoặc from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
00, đây là các phím tắt để sử dụng >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
26 và >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
27 mà không có bất kỳ đối số nào>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
3Các phím tắt này rất hữu ích khi bạn đang lặp lại toàn bộ tập dữ liệu
Thao tác dữ liệu bằng cấu trúc dữ liệu mặc định của Python
Bây giờ bạn đã biết kiến thức cơ bản về việc lặp qua dữ liệu trong sổ làm việc, hãy xem các cách thông minh để chuyển đổi dữ liệu đó thành cấu trúc Python
Như bạn đã thấy trước đó, kết quả từ tất cả các lần lặp có dạng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
25. Tuy nhiên, vì một >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
24 không gì khác hơn là một from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
05 bất biến, bạn có thể dễ dàng truy cập dữ liệu của nó và chuyển đổi nó thành các cấu trúc khácVí dụ: giả sử bạn muốn trích xuất thông tin sản phẩm từ bảng tính
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
1 và đưa vào từ điển trong đó mỗi khóa là ID sản phẩmMột cách đơn giản để thực hiện việc này là lặp lại tất cả các hàng, chọn các cột mà bạn biết là có liên quan đến thông tin sản phẩm, sau đó lưu trữ cột đó trong từ điển. Hãy viết mã này ra
Trước hết, hãy xem các tiêu đề và xem thông tin nào bạn quan tâm nhất
>>>
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
0Mã này trả về danh sách tất cả các tên cột bạn có trong bảng tính. Để bắt đầu, hãy lấy các cột có tên
07from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
08from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
09from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
10from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
Thật may mắn cho bạn, các cột bạn cần đều nằm cạnh nhau nên bạn có thể sử dụng
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
11 và from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
12 để dễ dàng lấy dữ liệu mình muốn>>>
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
1Tốt đẹp. Bây giờ bạn đã biết cách lấy tất cả thông tin sản phẩm quan trọng mà bạn cần, hãy đưa dữ liệu đó vào từ điển
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
2Đoạn mã trên trả về một JSON tương tự như thế này
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
3Ở đây bạn có thể thấy rằng đầu ra chỉ được cắt thành 2 sản phẩm, nhưng nếu bạn chạy tập lệnh như hiện tại thì bạn sẽ nhận được 98 sản phẩm
Chuyển đổi dữ liệu thành các lớp Python
Để hoàn thiện phần đọc của hướng dẫn này, hãy đi sâu vào các lớp Python và xem cách bạn có thể cải thiện ví dụ trên và cấu trúc dữ liệu tốt hơn
Đối với điều này, bạn sẽ sử dụng các Lớp dữ liệu Python mới có sẵn từ Python 3. 7. Nếu bạn đang sử dụng phiên bản Python cũ hơn, thì bạn có thể sử dụng các Lớp mặc định để thay thế
Vì vậy, điều đầu tiên trước tiên, hãy xem dữ liệu bạn có và quyết định bạn muốn lưu trữ gì và lưu trữ như thế nào
Như bạn đã thấy ngay từ đầu, dữ liệu này đến từ Amazon và đó là danh sách đánh giá sản phẩm. Bạn có thể kiểm tra danh sách tất cả các cột và ý nghĩa của chúng trên Amazon
Có hai yếu tố quan trọng mà bạn có thể trích xuất từ dữ liệu có sẵn
- Các sản phẩm
- Nhận xét
Một sản phẩm có
- TÔI
- Tiêu đề
- Cha mẹ
- Loại
Phần Đánh giá có thêm một số trường
- TÔI
- ID khách hàng
- ngôi sao
- Tiêu đề
- Thân hình
- Ngày
Bạn có thể bỏ qua một số trường đánh giá để mọi thứ đơn giản hơn một chút
Vì vậy, việc triển khai đơn giản hai lớp này có thể được viết trong một tệp riêng biệt
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
13from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
4Sau khi xác định các lớp dữ liệu của mình, bạn cần chuyển đổi dữ liệu từ bảng tính sang các cấu trúc mới này
Trước khi thực hiện chuyển đổi, bạn nên xem lại tiêu đề của chúng tôi và tạo ánh xạ giữa các cột và trường bạn cần
>>>
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
5Hãy tạo một tệp
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
14 nơi bạn có danh sách tất cả các tên trường và vị trí cột của chúng [không được lập chỉ mục] trên bảng tínhfrom openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
6Bạn không nhất thiết phải lập bản đồ ở trên. Nó dễ đọc hơn khi phân tích cú pháp dữ liệu hàng, vì vậy bạn sẽ không gặp phải nhiều con số kỳ diệu nằm xung quanh
Cuối cùng, hãy xem mã cần thiết để phân tích dữ liệu bảng tính thành danh sách sản phẩm và đối tượng đánh giá
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
7Sau khi bạn chạy đoạn mã trên, bạn sẽ nhận được một số đầu ra như thế này
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
8Đó là nó. Bây giờ bạn sẽ có dữ liệu ở định dạng lớp rất đơn giản và dễ hiểu, và bạn có thể bắt đầu nghĩ đến việc lưu trữ dữ liệu này trong Cơ sở dữ liệu hoặc bất kỳ loại lưu trữ dữ liệu nào khác mà bạn muốn
Sử dụng loại chiến lược OOP này để phân tích cú pháp bảng tính giúp việc xử lý dữ liệu sau này trở nên đơn giản hơn nhiều
Loại bỏ các quảng cáoĐang thêm dữ liệu mới
Trước khi bạn bắt đầu tạo các bảng tính rất phức tạp, hãy xem nhanh ví dụ về cách nối thêm dữ liệu vào bảng tính hiện có
Quay lại bảng tính ví dụ đầu tiên mà bạn đã tạo [
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
0] và thử mở nó và thêm một số dữ liệu vào nó, như thế nàyfrom openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
9Và voilà, nếu bạn mở bảng tính
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
16 mới, bạn sẽ thấy thay đổi sauLưu ý cách viết bổ sung;] trên ô
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
17Viết bảng tính Excel với openpyxl
Có rất nhiều thứ khác nhau mà bạn có thể viết vào bảng tính, từ các giá trị số hoặc văn bản đơn giản đến các công thức, biểu đồ hoặc thậm chí cả hình ảnh phức tạp.
Hãy bắt đầu tạo một số bảng tính
Tạo một bảng tính đơn giản
Trước đây, bạn đã thấy một ví dụ rất nhanh về cách viết “Xin chào thế giới. ” vào một bảng tính, vì vậy bạn có thể bắt đầu với điều đó
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
00Các dòng được đánh dấu trong đoạn mã trên là những dòng quan trọng nhất để viết. Trong mã, bạn có thể thấy rằng
- Dòng 5 chỉ cho bạn cách tạo một sổ làm việc trống mới
- Dòng 8 và 9 chỉ cho bạn cách thêm dữ liệu vào các ô cụ thể
- Dòng 11 chỉ cho bạn cách lưu bảng tính khi bạn hoàn thành
Mặc dù những dòng trên có thể đơn giản, nhưng bạn vẫn nên biết rõ về chúng khi mọi thứ trở nên phức tạp hơn một chút
Ghi chú. Bạn sẽ sử dụng bảng tính
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
0 cho một số ví dụ sắp tới, vì vậy hãy giữ nó ở nơi thuận tiệnMột điều bạn có thể làm để trợ giúp với các ví dụ về mã sắp tới là thêm phương thức sau vào tệp Python hoặc bảng điều khiển của bạn
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
01Việc in tất cả các giá trị bảng tính của bạn trở nên dễ dàng hơn bằng cách chỉ cần gọi
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
19Loại bỏ các quảng cáoThao tác bảng tính cơ bản
Trước khi tham gia vào các chủ đề nâng cao hơn, bạn nên biết cách quản lý các thành phần đơn giản nhất của bảng tính
Thêm và cập nhật giá trị ô
Bạn đã học cách thêm giá trị vào bảng tính như thế này
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
02Có một cách khác để bạn có thể thực hiện việc này, bằng cách trước tiên chọn một ô rồi thay đổi giá trị của ô đó
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
03Giá trị mới chỉ được lưu vào bảng tính sau khi bạn gọi
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
20>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 tạo một ô khi thêm một giá trị, nếu ô đó không tồn tại trước đó>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
04Như bạn có thể thấy, khi cố gắng thêm một giá trị vào ô
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
22, bạn sẽ nhận được một bộ có 10 hàng, để bạn có thể có giá trị thử nghiệm đóQuản lý hàng và cột
Một trong những điều phổ biến nhất bạn phải làm khi thao tác với bảng tính là thêm hoặc bớt hàng và cột. Gói
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 cho phép bạn thực hiện điều đó một cách rất đơn giản bằng cách sử dụng các phương thức
24from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
25from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
26from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
27from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
Mỗi một trong những phương thức đó có thể nhận được hai đối số
28from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
29from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
Sử dụng lại ví dụ cơ bản về
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
0 của chúng ta, hãy xem các phương thức này hoạt động như thế nào>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
05Điều duy nhất bạn cần nhớ là khi chèn dữ liệu mới [hàng hoặc cột], việc chèn sẽ xảy ra trước tham số
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
28Vì vậy, nếu bạn thực hiện
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
32, nó sẽ chèn một hàng mới trước hàng đầu tiên hiện cóNó giống nhau cho các cột. khi bạn gọi
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
33, nó sẽ chèn một cột mới ngay trước cột thứ hai đã tồn tại [from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
34]Tuy nhiên, khi xóa hàng hoặc cột,
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
35 sẽ xóa dữ liệu bắt đầu từ chỉ mục được truyền dưới dạng đối sốVí dụ: khi thực hiện
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
36, nó sẽ xóa hàng from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
37 và khi thực hiện from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
38, nó sẽ xóa cột thứ ba [from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
39]Quản lý trang tính
Quản lý trang tính cũng là một trong những điều bạn có thể cần biết, mặc dù đó có thể là thứ bạn không sử dụng thường xuyên.
Nếu bạn xem lại các ví dụ mã từ hướng dẫn này, bạn sẽ nhận thấy đoạn mã định kỳ sau
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
06Đây là cách để chọn trang tính mặc định từ bảng tính. Tuy nhiên, nếu bạn đang mở một bảng tính có nhiều trang tính thì bạn luôn có thể chọn một trang tính cụ thể như thế này
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
07Bạn cũng có thể thay đổi tiêu đề trang tính rất dễ dàng
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
08Nếu bạn muốn tạo hoặc xóa trang tính, thì bạn cũng có thể làm điều đó với
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
40 và from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
41>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
09Một điều khác bạn có thể làm là tạo các bản sao của trang tính bằng cách sử dụng
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
42>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
50Nếu bạn mở bảng tính của mình sau khi lưu mã ở trên, bạn sẽ nhận thấy rằng trang tính Bản sao sản phẩm là một bản sao của trang tính Sản phẩm
Cố định hàng và cột
Điều mà bạn có thể muốn thực hiện khi làm việc với các bảng tính lớn là cố định một vài hàng hoặc cột để chúng vẫn hiển thị khi bạn cuộn sang phải hoặc cuộn xuống
Đóng băng dữ liệu cho phép bạn theo dõi các hàng hoặc cột quan trọng, bất kể bạn cuộn ở đâu trong bảng tính
Một lần nữa,
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 cũng có một cách để thực hiện điều này bằng cách sử dụng thuộc tính from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
44 của trang tính. Đối với ví dụ này, hãy quay lại bảng tính >>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
1 của chúng tôi và thử làm như sau>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
51Nếu bạn mở bảng tính
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
46 trong trình chỉnh sửa bảng tính yêu thích của mình, bạn sẽ nhận thấy rằng hàng >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
22 và cột from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
48 và from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
34 bị cố định và luôn hiển thị cho dù bạn điều hướng ở đâu trong bảng tínhVí dụ, tính năng này rất hữu ích để giữ các tiêu đề trong tầm nhìn, vì vậy bạn luôn biết mỗi cột đại diện cho điều gì
Đây là giao diện của nó trong trình chỉnh sửa
Lưu ý rằng bạn đang ở cuối bảng tính, tuy nhiên, bạn có thể thấy cả hàng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
22 và cột from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
48 và from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
34Thêm bộ lọc
Bạn có thể sử dụng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 để thêm bộ lọc và sắp xếp vào bảng tính của mình. Tuy nhiên, khi bạn mở bảng tính, dữ liệu sẽ không được sắp xếp lại theo các loại và bộ lọc nàyLúc đầu, đây có vẻ là một tính năng khá vô dụng, nhưng khi bạn lập trình tạo một bảng tính sẽ được gửi và sử dụng bởi người khác, thì ít nhất bạn cũng nên tạo các bộ lọc và cho phép mọi người sử dụng nó sau đó.
Đoạn mã dưới đây là một ví dụ về cách bạn sẽ thêm một số bộ lọc vào bảng tính
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
1 hiện tại của chúng tôi>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
52Bây giờ, bạn sẽ thấy các bộ lọc được tạo khi mở bảng tính trong trình chỉnh sửa của mình
Bạn không cần phải sử dụng
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
55 nếu bạn biết chính xác bạn muốn áp dụng bộ lọc vào phần nào của bảng tínhLoại bỏ các quảng cáoThêm công thức
Công thức [hoặc công thức] là một trong những tính năng mạnh mẽ nhất của bảng tính
Chúng cung cấp cho bạn sức mạnh để áp dụng các phương trình toán học cụ thể cho một dải ô. Sử dụng công thức với
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 đơn giản như chỉnh sửa giá trị của một ôBạn có thể xem danh sách các công thức được hỗ trợ bởi
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
53Hãy thêm một số công thức vào bảng tính
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
1 của chúng taBắt đầu với điều gì đó dễ dàng, hãy kiểm tra xếp hạng sao trung bình cho 99 bài đánh giá trong bảng tính
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
54Nếu bạn mở bảng tính bây giờ và chuyển đến ô
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
59, bạn sẽ thấy giá trị của nó là. 4. 18181818181818. Hãy xem trong trình chỉnh sửaBạn có thể sử dụng phương pháp tương tự để thêm bất kỳ công thức nào vào bảng tính của mình. Ví dụ: hãy đếm số lượng bài đánh giá có phiếu bầu hữu ích
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
55Bạn sẽ nhận được số
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
60 trên ô bảng tính from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
61 của mình như vậyBạn sẽ phải đảm bảo rằng các chuỗi trong công thức luôn nằm trong dấu ngoặc kép, vì vậy bạn phải sử dụng dấu ngoặc đơn xung quanh công thức như trong ví dụ trên hoặc bạn sẽ phải thoát khỏi dấu ngoặc kép bên trong công thức.
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
62Có rất nhiều công thức khác mà bạn có thể thêm vào bảng tính của mình bằng quy trình tương tự như bạn đã thử ở trên. Cho nó một đi chính mình
Thêm kiểu
Mặc dù việc tạo kiểu cho bảng tính có thể không phải là điều bạn sẽ làm hàng ngày, nhưng vẫn rất tốt nếu bạn biết cách thực hiện
Sử dụng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4, bạn có thể áp dụng nhiều tùy chọn kiểu dáng cho bảng tính của mình, bao gồm phông chữ, đường viền, màu sắc, v.v. Hãy xem tài liệu >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 để tìm hiểu thêmBạn cũng có thể chọn áp dụng một kiểu trực tiếp cho một ô hoặc tạo một mẫu và sử dụng lại nó để áp dụng các kiểu cho nhiều ô
Hãy bắt đầu bằng cách xem cách tạo kiểu ô đơn giản, sử dụng lại
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
1 của chúng tôi làm bảng tính cơ sở>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
56Nếu bạn mở bảng tính của mình ngay bây giờ, bạn sẽ thấy khá nhiều kiểu khác nhau trên 5 ô đầu tiên của cột
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
48của bạn đi. Bạn có
- A2 với văn bản được in đậm
- A3 với văn bản màu đỏ và cỡ chữ lớn hơn
- A4 với văn bản ở giữa
- A5 với đường viền hình vuông xung quanh văn bản
Ghi chú. Đối với màu sắc, bạn cũng có thể sử dụng mã HEX bằng cách thực hiện
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
67Bạn cũng có thể kết hợp các kiểu bằng cách thêm chúng vào ô cùng một lúc
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
57Hãy xem ô
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
68 tại đâyKhi bạn muốn áp dụng nhiều kiểu cho một hoặc nhiều ô, thay vào đó, bạn có thể sử dụng lớp
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
69, lớp này giống như một mẫu kiểu mà bạn có thể sử dụng nhiều lần. Hãy xem ví dụ dưới đây>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
58Nếu bạn mở bảng tính ngay bây giờ, bạn sẽ thấy rằng hàng đầu tiên của bảng tính được in đậm, văn bản được căn giữa và có một đường viền nhỏ ở dưới cùng. Có một cái nhìn dưới đây
Như bạn đã thấy ở trên, có nhiều tùy chọn khi nói đến kiểu dáng và tùy thuộc vào trường hợp sử dụng, vì vậy vui lòng kiểm tra tài liệu
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 và xem bạn có thể làm những việc gì khácLoại bỏ các quảng cáoĐịnh dạng có điều kiện
Tính năng này là một trong những tính năng yêu thích của cá nhân tôi khi thêm kiểu vào bảng tính
Đó là một cách tiếp cận hiệu quả hơn nhiều để tạo kiểu vì nó tự động áp dụng các kiểu theo cách dữ liệu trong bảng tính thay đổi
Tóm lại, định dạng có điều kiện cho phép bạn chỉ định một danh sách các kiểu để áp dụng cho một ô [hoặc phạm vi ô] theo các điều kiện cụ thể
Ví dụ: một trường hợp sử dụng rộng rãi là có một bảng cân đối kế toán trong đó tất cả các tổng âm có màu đỏ và các tổng dương có màu xanh lá cây. Định dạng này làm cho việc phát hiện các khoảng thời gian tốt và xấu hiệu quả hơn nhiều
Còn chần chừ gì nữa, hãy chọn bảng tính yêu thích của chúng ta—
>>> for row in sheet.iter_rows[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[row]
[, , ]
[, , ]
>>> for column in sheet.iter_cols[min_row=1,
.. max_row=2,
.. min_col=1,
.. max_col=3]:
.. print[column]
[, ]
[, ]
[, ]
1—và thêm một số định dạng có điều kiệnBạn có thể bắt đầu bằng cách thêm một đánh giá đơn giản có nền đỏ vào tất cả các đánh giá có ít hơn 3 sao
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
59Bây giờ bạn sẽ thấy tất cả các bài đánh giá có xếp hạng sao dưới 3 được đánh dấu bằng nền đỏ
Về mã, thứ duy nhất mới ở đây là các đối tượng
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
72 và from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
73
72 khá giống vớifrom openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
69 mà bạn đã thấy ở trên và nó được sử dụng để tổng hợp nhiều kiểu như phông chữ, đường viền, căn chỉnh, v.v.from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
73 chịu trách nhiệm chọn các ô và áp dụng các kiểu nếu các ô phù hợp với logic của quy tắcfrom openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
Sử dụng đối tượng
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
73, bạn có thể tạo nhiều tình huống định dạng có điều kiệnTuy nhiên, để đơn giản hóa, gói
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 cung cấp 3 định dạng tích hợp giúp tạo một số mẫu định dạng có điều kiện phổ biến dễ dàng hơn. Những tích hợp này là
79from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
80from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
81from openpyxl import Workbook workbook = Workbook[] sheet = workbook.active sheet["A1"] = "hello" sheet["B1"] = "world!" workbook.save[filename="hello_world.xlsx"]
ColorScale cung cấp cho bạn khả năng tạo độ dốc màu
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
10Bây giờ bạn sẽ thấy dải màu trên cột
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
82, từ đỏ sang xanh lục, theo xếp hạng saoThay vào đó, bạn cũng có thể thêm màu thứ ba và tạo hai chuyển màu
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
11Lần này, bạn sẽ nhận thấy rằng xếp hạng sao từ 1 đến 3 có dải màu từ đỏ sang vàng và xếp hạng sao từ 3 đến 5 có dải màu từ vàng sang xanh lục
IconSet cho phép bạn thêm một biểu tượng vào ô theo giá trị của nó
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
12Bạn sẽ thấy một mũi tên màu bên cạnh xếp hạng sao. Mũi tên này có màu đỏ và chỉ xuống khi giá trị của ô là 1 và khi xếp hạng tốt hơn, mũi tên bắt đầu hướng lên và chuyển sang màu xanh lục
Gói
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 có một danh sách đầy đủ các biểu tượng khác mà bạn có thể sử dụng, bên cạnh mũi tênCuối cùng, DataBar cho phép bạn tạo các thanh tiến trình
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
13Bây giờ, bạn sẽ thấy một thanh tiến trình màu xanh lục càng đầy khi xếp hạng sao càng gần với số 5
Như bạn có thể thấy, có rất nhiều điều thú vị bạn có thể làm với định dạng có điều kiện
Ở đây, bạn chỉ thấy một vài ví dụ về những gì bạn có thể đạt được với nó, nhưng hãy kiểm tra tài liệu
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 để xem một loạt các tùy chọn khácLoại bỏ các quảng cáoThêm hình ảnh
Mặc dù hình ảnh không phải là thứ bạn thường thấy trong bảng tính, nhưng thật tuyệt khi có thể thêm chúng. Có lẽ bạn có thể sử dụng nó cho mục đích xây dựng thương hiệu hoặc để làm cho bảng tính cá nhân hơn
Để có thể tải hình ảnh vào bảng tính bằng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4, bạn sẽ phải cài đặt from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
86>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
14Ngoài ra, bạn cũng sẽ cần một hình ảnh. Đối với ví dụ này, bạn có thể lấy logo Real Python bên dưới và chuyển đổi nó từ
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
87 thành from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
88 bằng cách sử dụng trình chuyển đổi trực tuyến như cloudconvert. com, lưu tệp cuối cùng dưới dạng from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
89 và sao chép tệp đó vào thư mục gốc nơi bạn đang chạy các ví dụ của mìnhSau đó, đây là mã bạn cần để nhập hình ảnh đó vào bảng tính
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
90>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
15Bạn có một hình ảnh trên bảng tính của mình. Đây rồi
Hình ảnh ở góc trên cùng bên trái nằm trên ô bạn chọn, trong trường hợp này là _______ 791
Thêm các biểu đồ đẹp
Một điều mạnh mẽ khác mà bạn có thể làm với bảng tính là tạo nhiều loại biểu đồ đáng kinh ngạc
Biểu đồ là một cách tuyệt vời để trực quan hóa và hiểu lượng dữ liệu một cách nhanh chóng. Có rất nhiều loại biểu đồ khác nhau. biểu đồ thanh, biểu đồ hình tròn, biểu đồ đường, v.v.
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 đã hỗ trợ cho rất nhiều người trong số họỞ đây, bạn sẽ chỉ thấy một vài ví dụ về biểu đồ vì lý thuyết đằng sau nó giống nhau đối với mọi loại biểu đồ.
Ghi chú. Một số loại biểu đồ mà
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 hiện không hỗ trợ là Phễu, Gantt, Pareto, Sơ đồ cây, Thác nước, Bản đồ và SunburstĐối với bất kỳ biểu đồ nào bạn muốn tạo, bạn sẽ cần xác định loại biểu đồ.
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
94, from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
95, v.v., cộng với dữ liệu được sử dụng cho biểu đồ, được gọi là from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
96Trước khi bạn có thể tạo biểu đồ của mình, bạn cần xác định dữ liệu nào bạn muốn xem được trình bày trong đó. Đôi khi, bạn có thể sử dụng tập dữ liệu như hiện tại, nhưng những lúc khác, bạn cần xoa bóp dữ liệu một chút để có thêm thông tin
Hãy bắt đầu bằng cách xây dựng một sổ làm việc mới với một số dữ liệu mẫu
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
16Bây giờ, bạn sẽ bắt đầu bằng cách tạo biểu đồ thanh hiển thị tổng số lần bán trên mỗi sản phẩm
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
17Ở đó bạn có nó. Dưới đây, bạn có thể thấy một biểu đồ thanh rất đơn giản cho thấy sự khác biệt giữa bán sản phẩm trực tuyến trực tuyến và bán sản phẩm tại cửa hàng
Giống như với hình ảnh, góc trên cùng bên trái của biểu đồ nằm trên ô mà bạn đã thêm biểu đồ vào. Trong trường hợp của bạn, đó là trên điện thoại
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
97Ghi chú. Tùy thuộc vào việc bạn đang sử dụng Microsoft Excel hay giải pháp thay thế mã nguồn mở [LibreOffice hoặc OpenOffice], biểu đồ có thể trông hơi khác một chút
Thay vào đó, hãy thử tạo biểu đồ đường, thay đổi dữ liệu một chút
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
18Với đoạn mã trên, bạn sẽ có thể tạo một số dữ liệu ngẫu nhiên về doanh số của 3 sản phẩm khác nhau trong cả năm
Khi đã xong, bạn có thể dễ dàng tạo biểu đồ đường bằng đoạn mã sau
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
19Đây là kết quả của đoạn mã trên
Một điều cần lưu ý ở đây là bạn đang sử dụng
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
98 khi thêm dữ liệu. Đối số này làm cho biểu đồ vẽ theo hàng thay vì theo từng cộtTrong dữ liệu mẫu của mình, bạn thấy rằng mỗi sản phẩm có một hàng với 12 giá trị [1 cột mỗi tháng]. Đó là lý do tại sao bạn sử dụng
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
99. Nếu bạn không vượt qua đối số đó, theo mặc định, biểu đồ sẽ cố gắng vẽ theo cột và bạn sẽ nhận được so sánh doanh số bán hàng theo từng thángMột sự khác biệt khác liên quan đến thay đổi đối số ở trên là thực tế là
from openpyxl import Workbook
workbook = Workbook[]
sheet = workbook.active
sheet["A1"] = "hello"
sheet["B1"] = "world!"
workbook.save[filename="hello_world.xlsx"]
96 của chúng tôi hiện bắt đầu từ cột đầu tiên, >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
001, thay vì cột thứ hai. Thay đổi này là cần thiết vì biểu đồ hiện mong đợi cột đầu tiên có tiêu đềCó một số điều khác mà bạn cũng có thể thay đổi liên quan đến kiểu biểu đồ. Ví dụ: bạn có thể thêm các danh mục cụ thể vào biểu đồ
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
50Thêm đoạn mã này trước khi lưu sổ làm việc và bạn sẽ thấy tên tháng xuất hiện thay vì số
Code-khôn ngoan, đây là một thay đổi tối thiểu. Nhưng về khả năng đọc của bảng tính, điều này giúp ai đó mở bảng tính và hiểu biểu đồ ngay lập tức dễ dàng hơn nhiều
Một điều khác bạn có thể làm để cải thiện khả năng đọc biểu đồ là thêm một trục. Bạn có thể làm điều đó bằng cách sử dụng các thuộc tính
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
002 và >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
003>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
51Điều này sẽ tạo ra một bảng tính như bên dưới
Như bạn có thể thấy, những thay đổi nhỏ như trên giúp việc đọc biểu đồ của bạn trở nên dễ dàng và nhanh chóng hơn nhiều
Ngoài ra còn có một cách để tạo kiểu cho biểu đồ của bạn bằng cách sử dụng thuộc tính
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
004 mặc định của Excel. Trong trường hợp này, bạn phải chọn một số từ 1 đến 48. Tùy thuộc vào sự lựa chọn của bạn, màu sắc của biểu đồ của bạn cũng thay đổi>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
52Với kiểu được chọn ở trên, tất cả các đường đều có một số màu cam
Không có tài liệu rõ ràng về hình thức của từng số kiểu, nhưng bảng tính này có một vài ví dụ về các kiểu có sẵn
Ví dụ về mã hoàn chỉnhHiển thị/Ẩn
Đây là mã đầy đủ được sử dụng để tạo biểu đồ đường với các danh mục, tiêu đề trục và kiểu
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
53Có rất nhiều loại biểu đồ và tùy chỉnh khác mà bạn có thể áp dụng, vì vậy hãy nhớ xem tài liệu gói về điều này nếu bạn cần một số định dạng cụ thể
Loại bỏ các quảng cáoChuyển đổi các lớp Python sang bảng tính Excel
Bạn đã biết cách chuyển đổi dữ liệu của bảng tính Excel thành các lớp Python, nhưng bây giờ hãy làm ngược lại
Hãy tưởng tượng bạn có một cơ sở dữ liệu và đang sử dụng một số Ánh xạ quan hệ đối tượng [ORM] để ánh xạ các đối tượng DB vào các lớp Python. Bây giờ, bạn muốn xuất các đối tượng đó thành một bảng tính
Giả sử các lớp dữ liệu sau đại diện cho dữ liệu đến từ cơ sở dữ liệu của bạn về doanh số bán sản phẩm
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
54Bây giờ, hãy tạo một số dữ liệu ngẫu nhiên, giả sử các lớp trên được lưu trữ trong tệp
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
005>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
55Bằng cách chạy đoạn mã này, bạn sẽ nhận được 5 sản phẩm với 5 tháng bán hàng với số lượng bán hàng ngẫu nhiên cho mỗi tháng
Bây giờ, để chuyển đổi dữ liệu này thành bảng tính, bạn cần lặp lại dữ liệu và nối nó vào bảng tính
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
56Đó là nó. Điều đó sẽ cho phép bạn tạo một bảng tính với một số dữ liệu đến từ cơ sở dữ liệu của bạn
Tuy nhiên, tại sao không sử dụng một số kiến thức thú vị mà bạn có được gần đây để thêm biểu đồ cũng như hiển thị dữ liệu đó một cách trực quan hơn?
Được rồi, sau đó bạn có thể làm một cái gì đó như thế này
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
57Bây giờ chúng ta nói chuyện. Đây là bảng tính được tạo từ các đối tượng cơ sở dữ liệu và có biểu đồ cùng mọi thứ
Đó là một cách tuyệt vời để bạn tổng hợp kiến thức mới về biểu đồ
Thưởng. Làm việc với gấu trúc
Mặc dù bạn có thể sử dụng Pandas để xử lý các tệp Excel, nhưng có một số điều bạn không thể thực hiện được với Pandas hoặc tốt hơn hết là bạn chỉ nên sử dụng trực tiếp
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4Ví dụ: một số ưu điểm của việc sử dụng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 là khả năng dễ dàng tùy chỉnh bảng tính của bạn bằng các kiểu, định dạng có điều kiện, v.v.Nhưng đoán xem, bạn không phải lo lắng về việc chọn. Trên thực tế,
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 có hỗ trợ cho cả chuyển đổi dữ liệu từ Pandas DataFrame thành sổ làm việc hoặc ngược lại, chuyển đổi sổ làm việc >>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 thành Pandas DataFrameGhi chú. Nếu bạn chưa quen với Pandas, hãy xem trước khóa học của chúng tôi về Pandas DataFrames
Trước tiên, hãy nhớ cài đặt gói
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
010>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
58Sau đó, hãy tạo một DataFrame mẫu
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
59Bây giờ bạn đã có một số dữ liệu, bạn có thể sử dụng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
011 để chuyển đổi dữ liệu đó từ DataFrame thành trang tính>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
0Bạn sẽ thấy một bảng tính trông như thế này
Nếu bạn muốn thêm chỉ mục của DataFrame, bạn có thể thay đổi
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
012 và nó sẽ thêm chỉ mục của từng hàng vào bảng tính của bạnMặt khác, nếu bạn muốn chuyển đổi bảng tính thành DataFrame, bạn cũng có thể thực hiện theo cách rất đơn giản như vậy
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
1Ngoài ra, nếu bạn muốn thêm các tiêu đề chính xác và sử dụng ID đánh giá làm chỉ mục chẳng hạn, thì bạn cũng có thể làm như thế này để thay thế
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
2Sử dụng các chỉ mục và cột cho phép bạn dễ dàng truy cập dữ liệu từ DataFrame của mình
>>>
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
3Vậy là xong, cho dù bạn muốn sử dụng
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 để làm đẹp bộ dữ liệu Pandas của mình hay sử dụng Pandas để thực hiện một số phép toán khó, giờ đây bạn đã biết cách chuyển đổi giữa cả hai góiLoại bỏ các quảng cáoSự kết luận
Phew, sau một thời gian dài đọc, giờ bạn đã biết cách làm việc với bảng tính trong Python. Bạn có thể dựa vào
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4, người bạn đồng hành đáng tin cậy của mình, để- Trích xuất thông tin có giá trị từ bảng tính theo cách Pythonic
- Tạo bảng tính của riêng bạn, bất kể mức độ phức tạp
- Thêm các tính năng thú vị như định dạng có điều kiện hoặc biểu đồ vào bảng tính của bạn
Có một vài điều khác bạn có thể làm với
>>> # Get all cells from column A
>>> sheet["A"]
[,
,
...
,
]
>>> # Get all cells for a range of columns
>>> sheet["A:B"]
[[,
,
...
,
],
[,
,
...
,
]]
>>> # Get all cells from row 5
>>> sheet[5]
[,
,
...
,
]
>>> # Get all cells for a range of rows
>>> sheet[5:6]
[[,
,
...
,
],
[,
,
...
,
]]
4 có thể không được đề cập trong hướng dẫn này, nhưng bạn luôn có thể kiểm tra trang web tài liệu chính thức của gói để tìm hiểu thêm về nó. Bạn thậm chí có thể mạo hiểm kiểm tra mã nguồn của nó và cải thiện gói hơn nữaVui lòng để lại bất kỳ nhận xét nào bên dưới nếu bạn có bất kỳ câu hỏi nào hoặc nếu có bất kỳ phần nào bạn muốn nghe thêm về
Tải xuống tập dữ liệu. Nhấp vào đây để tải xuống tập dữ liệu cho bài tập openpyxl mà bạn sẽ theo dõi trong hướng dẫn này
Đánh dấu là đã hoàn thành
Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Chỉnh sửa Bảng tính Excel bằng Python Với openpyxl
🐍 Thủ thuật Python 💌
Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python
Gửi cho tôi thủ thuật Python »
Giới thiệu về Pedro Pregueiro
Xin chào. Tên tôi là Pedro và tôi là nhà phát triển Python yêu thích viết mã, bánh mì kẹp thịt và chơi ghi-ta
» Thông tin thêm về PedroMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là
Aldren
Joanna
Mike
Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bạn nghĩ sao?
Đánh giá bài viết này
Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?
Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi