Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Chỉnh sửa bảng tính Excel trong Python với OpenPyXL This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Editing Excel Spreadsheets in Python With openpyxl

Show

Bảng tính Excel là một trong những điều bạn có thể phải đối phó tại một số điểm. Hoặc là vì ông chủ của bạn yêu họ hoặc vì 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à điều đó khi biết

>>> 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ó ích!

Bả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 các bộ dữ liệu lớn mà không có bất kỳ nền tảng kỹ thuật nào trước đó. Đó là lý do tại sao họ vẫn còn rất thường được sử dụng 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 với sự 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 các kiểu, biểu đồ, v.v.

Bài viết này được viết cho các nhà phát triển trung gian, những người có kiến ​​thức khá tốt về các cấu trúc dữ liệu Python, chẳng hạn như Dicts và Danh sách, nhưng cũng cảm thấy thoải mái xung quanh OOP và các chủ đề cấp trung gian hơn.

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 phải chuyển đổi bảng tính Excel thành một hình thức lập trình có thể sử dụng hơn, thì hướng dẫn này là hoàn hảo cho bạn. Hãy để nhảy vào đoàn lữ hà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!

Trường hợp sử dụng thực tế

Điều đầu tiên trước tiên, khi nào bạn cần sử dụng một gói 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 trong kịch bản trong thế giới thực? Bạn sẽ thấy một vài ví dụ dưới đây, nhưng thực sự, có hàng trăm kịch bản có thể xảy ra trong đó kiến ​​thức này có thể có ích.

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 tuyệt vời và đắt tiền.

Mỗi lần họ muốn thêm sản phẩm mới vào cửa hàng trực tuyến, họ sẽ đến với bạn với bảng tính Excel với vài trăm hàng và, cho mỗi người trong số họ, bạn có tên sản phẩm, mô tả, giá cả, v.v.

Bây giờ, để nhập dữ liệu, bạn sẽ phải lặp lại trên mỗi hàng 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 đỡ? Chà, bạn có thể tạo một tập lệnh nhanh 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)
(, )
(, )
(, )
0 lặp lại trên mỗi bản ghi người dùng và đặt tất cả thông tin cần thiết vào bảng tính Excel.

Rằng sẽ kiếm được cho bạn một lát bánh thêm tại công ty của bạn Bữa tiệc sinh nhật tiếp theo của bạn!

Nối 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 một số logic kinh doanh, hãy nối thêm dữ liệu vào nó.

Ví dụ: sử dụng kịch bản cửa hàng trực tuyến một lần nữa, nói rằng bạn nhận được bảng tính Excel với danh sách người dùng và bạn cần nối vào mỗi hàng tổng số tiền họ đã chi trong cửa hàng của bạn.

Dữ liệu này có 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 mỗi hàng, lấy tổng số tiền chi từ cơ sở dữ liệu và sau đó viết lại cho bảng tính.

Không phải là vấn đề cho

>>> 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!

Học một số thuật ngữ Excel cơ bản

Dưới đây, một danh sách nhanh các thuật ngữ cơ bản mà bạn sẽ thấy khi bạn làm việc với bảng tính Excel:

Kỳ hạnGiải trình
Bảng tính hoặc sổ làm việcBảng tính là tệp chính bạn đang tạo hoặc làm việc cùng.Spreadsheet is the main file you are creating or working with.
Bảng tính hoặc tờMột tờ được sử 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 bảng.Sheet is used to split different kinds of content within the same spreadsheet. A Spreadsheet can have one or more Sheets.
CộtMột cột là một đường thẳng đứng và nó được đại diện bởi một chữ cái viết hoa: A.Column is a vertical line, and it’s represented by an uppercase letter: A.
Hàng ngangMột hàng là một đường ngang và nó được biểu thị bằng một số: 1.Row is a horizontal line, and it’s represented by a number: 1.
Tế bàoMột ô là sự kết hợp giữa cột và hàng, được biểu thị bằng cả chữ hoa và số: A1.Cell is a combination of Column and Row, represented by both an uppercase letter and a number: A1.

Bắt đầu với OpenPyXL

Bây giờ, bạn đã nhận thức được lợi ích của một công cụ 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, hãy để Lừa xuống 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:

Sau khi bạn 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")

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)
(, )
(, )
(, )
6 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ày:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Woohoo, bảng tính đầu tiên của bạn được tạo!

Đọc bảng tính excel với openpyxl

Hãy bắt đầu với những đ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ừ một cách tiếp cận đơn giản để đọc một 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.

Bộ dữ liệu cho hướng dẫn này

Trước khi bạn đi sâu vào một số ví dụ về mã, bạn nên tải xuống bộ dữ liệu mẫu này và lưu trữ nó ở đâ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)
(, )
(, )
(, )
7:download this sample dataset and store it somewhere as
>>> 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:

Đây là một trong những bộ dữ liệu mà bạn sẽ sử dụng trong suốt hướng dẫn này và nó là một bảng tính với một mẫu dữ liệu thực từ các đá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 nhỏ của những gì Amazon cung cấp, nhưng với mục đích thử nghiệm, nó đã quá đủ.

Một 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:

>>>

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'

Trong 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)
(, )
(, )
(, )
7 bằ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)
(, )
(, )
(, )
9, và sau đó bạn có thể sử dụng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
0 để xem tất cả các tờ bạn có sẵn để làm việc. Sau đó,
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
1 chọn bảng có sẵn đầu tiên và, trong trường hợp này, bạn có thể thấy rằng nó sẽ tự động chọn bảng 1. Sử dụng các phương thức này là cách mặc định để mở một bảng tính và bạn sẽ thấy nó nhiều lần trong hướng dẫn này.Sheet 1 automatically. Using these methods is the default way of opening a spreadsheet, and you’ll see it many times during this tutorial.

Bây giờ, sau khi mở một bảng tính, bạn có thể dễ dàng truy xuất dữ liệu từ nó như thế này:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"

Trong 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)
(, )
(, )
(, )
7 bằ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)
(, )
(, )
(, )
9, và sau đó bạn có thể sử dụng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
0 để xem tất cả các tờ bạn có sẵn để làm việc. Sau đó,
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
1 chọn bảng có sẵn đầu tiên và, trong trường hợp này, bạn có thể thấy rằng nó sẽ tự động chọn bảng 1. Sử dụng các phương thức này là cách mặc định để mở một bảng tính và bạn sẽ thấy nó nhiều lần trong hướng dẫn này.

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"

Trong 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)
(, )
(, )
(, )
7 bằ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)
(, )
(, )
(, )
9, và sau đó bạn có thể sử dụng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
0 để xem tất cả các tờ bạn có sẵn để làm việc. Sau đó,
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
1 chọn bảng có sẵn đầu tiên và, trong trường hợp này, bạn có thể thấy rằng nó sẽ tự động chọn bảng 1. Sử dụng các phương thức này là cách mặc định để mở một bảng tính và bạn sẽ thấy nó nhiều lần trong hướng dẫn này.

Bây giờ, sau khi mở một bảng tính, bạn có thể dễ dàng truy xuất dữ liệu từ nó như thế này:

Để trả về giá trị thực của một ô, bạn cần phải làm
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
2. Nếu không, bạn sẽ nhận được đối tượng chính
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
3 chính. Bạn cũng có thể sử dụng phương pháp
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
4 để truy xuất một ô bằng ký hiệu chỉ mục. Hãy nhớ thêm
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
2 để có được giá trị thực tế chứ không phải đối tượng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
3:

Bạn có thể thấy rằng các kết quả được trả lại là như nhau, bất kể bạn quyết định đi theo 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:

>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
7.

  1. Trên đây cho bạn thấy cách nhanh nhất để mở bảng tính. Tuy nhiên, bạn có thể vượt qua các tham số bổ sung để thay đổi cách tải bảng tính. loads a spreadsheet in read-only mode allowing you to open very large Excel files.
  2. Tùy chọn đọc bổ sung ignores loading formulas and instead loads only the resulting values.

Có một vài đối số bạn có thể chuyển sang >>> 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) (, ) (, ) (, ) 9 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 một bảng tính ở chế độ chỉ đọc cho phép bạn mở các tệp excel rất lớn.the iteration and actual usage of the values within the spreadsheet.

Data_only bỏ qua các công thức tải 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 điều cơ bản về việc tải một bảng tính, đó là khoảng thời gian bạn nhận được phần thú vị: 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ẽ học tất cả các cách khác nhau mà bạn có thể lặp lại thông qua dữ liệu, nhưng cũng làm thế nào để chuyển đổi dữ liệu đó thành một thứ gì đó có thể sử dụng và quan trọng hơn là làm thế nào để thực hiện theo cách của Pythonic.

>>>

>>> sheet["A1:C2"]
((, , ),
 (, , ))

Trong 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)
(, )
(, )
(, )
7 bằ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)
(, )
(, )
(, )
9, và sau đó bạn có thể sử dụng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
0 để xem tất cả các tờ bạn có sẵn để làm việc. Sau đó,
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
1 chọn bảng có sẵn đầu tiên và, trong trường hợp này, bạn có thể thấy rằng nó sẽ tự động chọn bảng 1. Sử dụng các phương thức này là cách mặc định để mở một bảng tính và bạn sẽ thấy nó nhiều lần trong hướng dẫn 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))

Trong 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)
(, )
(, )
(, )
7 bằ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)
(, )
(, )
(, )
9, và sau đó bạn có thể sử dụng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
0 để xem tất cả các tờ bạn có sẵn để làm việc. Sau đó,
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
1 chọn bảng có sẵn đầu tiên và, trong trường hợp này, bạn có thể thấy rằng nó sẽ tự động chọn bảng 1. Sử dụng các phương thức này là cách mặc định để mở một bảng tính và bạn sẽ thấy nó nhiều lần trong hướng dẫn này.

Bây giờ, sau khi mở một bảng tính, bạn có thể dễ dàng truy xuất dữ liệu từ nó như thế này:

  • >>> for row in sheet.rows:
    ...     print(row)
    (, , 
    ...
    , , )
    
    1
  • >>> for row in sheet.rows:
    ...     print(row)
    (, , 
    ...
    , , )
    
    2

Để trả về giá trị thực của một ô, bạn cần phải làm

>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
2. Nếu không, bạn sẽ nhận được đối tượng chính
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
3 chính. Bạn cũng có thể sử dụng phương pháp
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
4 để truy xuất một ô bằng ký hiệu chỉ mục. Hãy nhớ thêm
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
2 để có được giá trị thực tế chứ không phải đối tượng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
3:

  • >>> for row in sheet.rows:
    ...     print(row)
    (, , 
    ...
    , , )
    
    3
  • >>> for row in sheet.rows:
    ...     print(row)
    (, , 
    ...
    , , )
    
    4
  • >>> for row in sheet.rows:
    ...     print(row)
    (, , 
    ...
    , , )
    
    5
  • >>> for row in sheet.rows:
    ...     print(row)
    (, , 
    ...
    , , )
    
    6

Bạn có thể thấy rằng các kết quả được trả lại là như nhau, bất kể bạn quyết định đi theo 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:

>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
7.

>>>

>>> 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)
(, )
(, )
(, )

Trong 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)
(, )
(, )
(, )
7 bằ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)
(, )
(, )
(, )
9, và sau đó bạn có thể sử dụng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
0 để xem tất cả các tờ bạn có sẵn để làm việc. Sau đó,
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
1 chọn bảng có sẵn đầu tiên và, trong trường hợp này, bạn có thể thấy rằng nó sẽ tự động chọn bảng 1. Sử dụng các phương thức này là cách mặc định để mở một bảng tính và bạn sẽ thấy nó nhiều lần trong hướng dẫn này.

Bây giờ, sau khi mở một bảng tính, bạn có thể dễ dàng truy xuất dữ liệu từ nó như thế này:

>>>

>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')

Trong 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)
(, )
(, )
(, )
7 bằ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)
(, )
(, )
(, )
9, và sau đó bạn có thể sử dụng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
0 để xem tất cả các tờ bạn có sẵn để làm việc. Sau đó,
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
1 chọn bảng có sẵn đầu tiên và, trong trường hợp này, bạn có thể thấy rằng nó sẽ tự động chọn bảng 1. Sử dụng các phương thức này là cách mặc định để mở một bảng tính và bạn sẽ thấy nó nhiều lần trong hướng dẫn này.

>>>

>>> for row in sheet.rows:
...     print(row)
(, , 
...
, , )

Trong 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)
(, )
(, )
(, )
7 bằ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)
(, )
(, )
(, )
9, và sau đó bạn có thể sử dụng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
0 để xem tất cả các tờ bạn có sẵn để làm việc. Sau đó,
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
1 chọn bảng có sẵn đầu tiên và, trong trường hợp này, bạn có thể thấy rằng nó sẽ tự động chọn bảng 1. Sử dụng các phương thức này là cách mặc định để mở một bảng tính và bạn sẽ thấy nó nhiều lần trong hướng dẫn này.

Bây giờ, sau khi mở một bảng tính, bạn có thể dễ dàng truy xuất dữ liệu từ nó như thế này:

Để trả về giá trị thực của một ô, bạn cần phải làm

>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
2. Nếu không, bạn sẽ nhận được đối tượng chính
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
3 chính. Bạn cũng có thể sử dụng phương pháp
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
4 để truy xuất một ô bằng ký hiệu chỉ mục. Hãy nhớ thêm
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
2 để có được giá trị thực tế chứ không phải đối tượng
>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
3:

Bạn có thể thấy rằng các kết quả được trả lại là như nhau, bất kể bạn quyết định đi theo 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:

>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=2,
...                              min_col=1,
...                              max_col=3,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id')
('US', 3653882, 'R3O9SGZBVQBV76')
7.

Ví 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)
(, )
(, )
(, )
7 và vào một từ điển trong đó mỗi khóa là ID sản phẩm.

Một cách đơn giản để làm điều này là lặp lại trên tất cả các hàng, chọn các cột bạn biết có liên quan đến thông tin sản phẩm và sau đó lưu trữ nó trong một từ điển. Hãy để mã hóa này ra!

Trước hết, hãy xem các tiêu đề và xem thông tin bạn quan tâm nhất:

>>>

>>> for value in sheet.iter_rows(min_row=1,
...                              max_row=1,
...                              values_only=True):
...     print(value)
('marketplace', 'customer_id', 'review_id', 'product_id', ...)

Mã này trả về một 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:

  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    02
  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    03
  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    04
  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    05

May mắn cho bạn, các cột bạn cần đều nằm cạnh nhau để bạn có thể sử dụng

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
06 và
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
07 để dễ dàng lấy dữ liệu bạn muốn:

>>>

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
0

Mã này trả về một 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:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
1

May mắn cho bạn, các cột bạn cần đều nằm cạnh nhau để bạn có thể sử dụng

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
06 và
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
07 để dễ dàng lấy dữ liệu bạn muốn:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
2

Tố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 bạn cần, hãy để Lôi đặt dữ liệu đó vào một từ điển:

Mã trên trả về một JSON tương tự như thế này:

Ở đâ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ư vậy, thì bạn nên nhận 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 để Lướt 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 tốt hơn dữ liệu.

Đố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 sử dụng một 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, những điều đầu tiên trước tiên, hãy để Lôi nhìn vào dữ liệu bạn có và quyết định những gì bạn muốn lưu trữ và cách bạn muốn lưu trữ nó.

  1. Như bạn đã thấy ngay từ đầu, dữ liệu này đến từ Amazon và nó là một danh sách các đá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.
  2. 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ẩmProduct has:

  • Đánh giá
  • Một sản phẩm có:
  • TÔI
  • Tiêu đề

Cha mẹReview has a few more fields:

  • Đánh giá
  • Một sản phẩm có:
  • TÔI
  • Tiêu đề
  • Cha mẹ
  • Loại

Đánh giá có thêm một vài lĩnh vực:

ID khách hàng

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
3

Sao

Tiêu đề

>>>

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
4

Thân hình

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
5

Ngày

Bạn có thể bỏ qua một vài trường đánh giá để làm cho mọi thứ đơn giản hơn một chút.

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
6

Vì vậy, việc triển khai đơn giản của hai lớp này có thể được viết trong một tệp riêng

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
08:

Sau khi xác định các lớp dữ liệu của bạn, bạn cần chuyển đổi dữ liệu từ bảng tính thành các cấu trúc mới này.

Trước khi thực hiện chuyển đổi, nó đáng để xem xét lại tiêu đề của chúng tôi và tạo ánh xạ giữa các cột và các trường bạn cần:

Hãy cùng tạo một tệp

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
09 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 chỉ số) trên bảng tính:

Bạn không nhất thiết phải thực hiện bản đồ ở trên. Nó có nhiều khả năng đọc hơn khi phân tích dữ liệu hàng, vì vậy bạn không thể kết thúc với rất nhiều số ma thuật nằm xung quanh.

Cuối cùng, hãy để Lôi nhìn vào mã cần thiết để phân tích dữ liệu bảng tính vào danh sách các đối tượng sản phẩm và đánh giá:

Sau khi bạn chạy mã ở trên, bạn sẽ nhận được một số đầu ra như thế này:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
8

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
7

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Đó là nó! Bây giờ bạn nên có dữ liệu ở định dạng lớp rất đơn giản và dễ tiêu hóa và bạn có thể bắt đầu nghĩ đến việc lưu trữ điề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 thích.

Sử dụng loại chiến lược OOP này để phân tích bảng tính làm cho việc xử lý dữ liệu đơn giản hơn nhiều sau này.

Nối thêm dữ liệu mới

Trước khi bạn bắt đầu tạo bảng tính rất phức tạp, hãy xem nhanh một ví dụ về cách nối 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) (, ) (, ) (, ) 6) và thử mở và nối thêm một số dữ liệu vào nó, như thế này:

Et voilà, nếu bạn mở bảng tính

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
11 mới, bạn sẽ thấy sự thay đổi sau:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
9

Lưu ý văn bản bổ sung;) trên ô

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
12.

  • Viết bảng tính excel bằng openpyxl shows you how to create a new empty workbook.
  • Có rất nhiều thứ khác nhau bạn có thể viết vào bảng tính, từ các giá trị văn bản hoặc số đơn giản đến các công thức phức tạp, biểu đồ hoặc thậm chí hình ảnh. show you how to add data to specific cells.
  • Hãy để bắt đầu tạo ra một số bảng tính! shows you how to save the spreadsheet when you’re done.

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 ra Hello Hello World! thành một bảng tính, vì vậy bạn có thể bắt đầu với điều đó:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
0

Các dòng nổi bật trong 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:

Hoạt động bảng tính cơ bản

Trước khi bạn tham gia vào các chủ đề nâng cao hơn, nó rất tốt cho bạn để biết cách quản lý các yếu tố đơn giản nhất của bảng tính.

Thêm và cập nhật các giá trị ô

Bạn đã học cách thêm giá trị vào bảng tính như thế này:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
1

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
2

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:

Giá trị mới chỉ được lưu trữ vào bảng tính sau khi bạn gọi

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
14.

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
3

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:

Giá trị mới chỉ được lưu trữ vào bảng tính sau khi bạn gọi
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
14.

>>> 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 tạo ra một ô khi thêm một giá trị, nếu ô đó không tồn tại trước đó:

  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    18
  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    19
  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    20
  • Như bạn có thể thấy, khi cố gắng thêm giá trị vào ô
    >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    16, bạn sẽ kết thúc với một tuple với 10 hàng, chỉ để bạn có thể có giá trị kiểm tra đó.

Quản lý các hàng và cột

  1. >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    22
  2. >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    23

Một trong những điều phổ biến nhất bạn phải làm khi thao tác bảng tính là thêm hoặc loại bỏ các hàng và cột. Gó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)
(, )
(, )
(, )
0 cho phép bạn thực hiện điều đó theo cách rất đơn giản bằng cách sử dụng các phương thức:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
4

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:before the

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
22 parameter.

Giá trị mới chỉ được lưu trữ vào bảng tính sau khi bạn gọi

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
14.before the existing first row.

>>> 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 tạo ra một ô khi thêm một giá trị, nếu ô đó không tồn tại trước đó:before the already existing second column (
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
28).

Như bạn có thể thấy, khi cố gắng thêm giá trị vào ô

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
16, bạn sẽ kết thúc với một tuple với 10 hàng, chỉ để bạn có thể có giá trị kiểm tra đó.starting from the index passed as an argument.

Quản lý các 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 bảng tính là thêm hoặc loại bỏ các hàng và cột. Gó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)
(, )
(, )
(, )
0 cho phép bạn thực hiện điều đó theo cách rất đơn giản bằng cách sử dụng các phương thức:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
21

Mỗi một trong số các phương thức đó có thể nhận được hai đối số:

Sử dụng ví dụ

>>> 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 cơ bản của chúng tôi một lần nữa, hãy để xem các phương pháp này hoạt động như thế nào:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
5

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
6

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
7

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
8

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:

Giá trị mới chỉ được lưu trữ vào bảng tính sau khi bạn gọi
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
14.

>>> 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 tạo ra một ô khi thêm một giá trị, nếu ô đó không tồn tại trước đó:

Như bạn có thể thấy, khi cố gắng thêm giá trị vào ô

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
16, bạn sẽ kết thúc với một tuple với 10 hàng, chỉ để bạn có thể có giá trị kiểm tra đó.

Quản lý các hàng và cột

>>>

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
9

Có một cách khác mà bạn có thể làm điều này, trước tiên bằng cách chọn một ô và sau đó thay đổi giá trị của nó:

Giá trị mới chỉ được lưu trữ vào bảng tính sau khi bạn gọi

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
14.

>>> 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 tạo ra một ô khi thêm một giá trị, nếu ô đó không tồn tại trước đó:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Như bạn có thể thấy, khi cố gắng thêm giá trị vào ô

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
16, bạn sẽ kết thúc với một tuple với 10 hàng, chỉ để bạn có thể có giá trị kiểm tra đó.

Quản lý các 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 bảng tính là thêm hoặc loại bỏ các hàng và cột. Gó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)
(, )
(, )
(, )
0 cho phép bạn thực hiện điều đó theo cách rất đơn giản bằng cách sử dụng các phương thức:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
21

Mỗi một trong số các phương thức đó có thể nhận được hai đối số:

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
0

Sử dụng ví dụ

>>> 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 cơ bản của chúng tôi một lần nữa, hãy để xem các phương pháp này hoạt động như thế nào:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Đ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 xảy ra trước tham số

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
22.

Vì vậy, nếu bạn làm >>> from openpyxl import load_workbook >>> workbook = load_workbook(filename="sample.xlsx") >>> workbook.sheetnames ['Sheet 1'] >>> sheet = workbook.active >>> sheet >>> sheet.title 'Sheet 1' 26, 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 load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
27, nó sẽ chèn một cột mới ngay trước cột thứ hai đã có (
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
28).
(or formulae) are one of the most powerful features of spreadsheets.

Tuy nhiên, khi xóa các hàng hoặc cột,

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
29 xóa dữ liệu bắt đầu từ chỉ mục được truyền dưới dạng đối số.

Bạn có thể thấy danh sách các công thức được hỗ trợ bở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)
(, )
(, )
(, )
0:

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
1

Hã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)
(, )
(, )
(, )
7 của chúng tôi.

Bắt đầu với một cái gì đó dễ dàng, hãy để kiểm tra xếp hạng sao trung bình cho 99 đánh giá trong bảng tính:

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
2

Hã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)
(, )
(, )
(, )
7 của chúng tôi.

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Bắt đầu với một cái gì đó dễ dàng, hãy để kiểm tra xếp hạng sao trung bình cho 99 đánh giá trong bảng tính:

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
3

Hã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)
(, )
(, )
(, )
7 của chúng tôi.

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Bắt đầu với một cái gì đó dễ dàng, hãy để kiểm tra xếp hạng sao trung bình cho 99 đánh giá trong bảng tính:

Nếu bạn mở bảng tính ngay bây giờ và truy cập ô

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
53, bạn sẽ thấy rằng giá trị của nó là: 4.181818181818. Có một cái nhìn trong trình soạn thảo:

Bạn có thể sử dụng cùng một phương pháp để thêm bất kỳ công thức nào vào bảng tính của bạn. Ví dụ, hãy để đếm số lượng đánh giá có phiếu bầu hữu ích:

Bạn sẽ nhận được số

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
54 trên ô bảng tính
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
55 của bạn như vậy:

Bạn sẽ phải đảm bảo rằng các chuỗi trong một công thức luôn có trong các trích dẫn gấp đôi, vì vậy bạn phải sử dụng các trích dẫn đơn xung quanh công thức như trong ví dụ trên hoặc bạn sẽ phải thoát khỏi các trích dẫn kép bên trong công thức:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
56 .

Có 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 cách sử dụng cùng một quy trình bạn đã thử ở trên. Hãy tự đi!

Thêm kiểu

>>>

Mặc dù kiểu dáng một bảng tính có thể không phải là thứ bạn sẽ làm mỗi ngày, nhưng nó vẫn tốt để biết cách làm điều đó.

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)
(, )
(, )
(, )
0, 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
>>> 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 để tìm hiểu thêm.

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Bạn cũng có thể chọn áp dụng một kiểu trực tiếp vào ô hoặc tạo 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 nhìn vào kiểu dáng di động đơ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)
    (, )
    (, )
    (, )
    
    7 của chúng tôi làm bảng tính cơ sở:
    with the text in bold
  • >>> sheet.cell(row=10, column=6)
    
    
    >>> sheet.cell(row=10, column=6).value
    "G-Shock Men's Grey Sport Watch"
    
    4
    with the text in red and bigger font size
  • Nế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 load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    42:
    with the text centered
  • Có bạn đi. Bạn có: with a square border around the text

A2 với văn bản in đậm

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
5

A3 với văn bản có kích thước phông chữ màu đỏ và lớn hơn

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

A4 với văn bản tập trung

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
6

A5 có đường viền vuông xung quanh văn bản

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Bạ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:

Hãy xem ô >>> from openpyxl import load_workbook >>> workbook = load_workbook(filename="sample.xlsx") >>> workbook.sheetnames ['Sheet 1'] >>> sheet = workbook.active >>> sheet >>> sheet.title 'Sheet 1' 61 ở đây:

Khi bạn muốn áp dụng nhiều kiểu cho một hoặc một số ô, bạn có thể sử dụng lớp

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
62 thay thế, 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:

Nế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 nó được in đậm, văn bản được căn chỉnh với trung tâm và có một đường viền dưới đáy nhỏ! Có một cái nhìn bên dưới:

Như bạn đã thấy ở trên, có nhiều tùy chọn khi nói đến kiểu dáng, và nó phụ thuộc vào trường hợp sử dụng, vì vậy hãy kiểm tra tài liệu

>>> 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à xem những việc bạn có thể làm gì khác.conditional formatting allows you to specify a list of styles to apply to a cell (or cell range) according to specific conditions.

Định dạng có điều kiện

Tính năng này là một trong những mục yêu thích cá nhân của tôi khi thêm các kiểu vào bảng tính.

Nó là một cách tiếp cận mạnh mẽ hơn nhiều đối với kiểu dáng bởi vì nó áp dụng các kiểu tự động theo cách dữ liệu trong bảng tính thay đổi.

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
7

Tóm lại, định dạng có điều kiện cho phép bạn chỉ định 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ể.

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Ví dụ, một trường hợp sử dụng rộng rãi là có một bảng cân đối trong đó tất cả các tổng số âm màu đỏ và các trường hợp dương tính màu xanh lá cây. Định dạng này làm cho nó hiệu quả hơn nhiều để phát hiện ra thời kỳ tốt so với thời kỳ xấu.

  • Không có gì khó chịu, hãy để Lừa chọn bảng tính yêu thích của chúng tôi. is quite similar to
    >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    62, which you already saw above, and it’s used to aggregate multiple styles such as fonts, borders, alignment, and so forth.
  • Bạn có thể bắt đầu bằng cách thêm một cái đơn giản thêm nền màu đỏ cho tất cả các đánh giá với ít hơn 3 sao: is responsible for selecting the cells and applying the styles if the cells match the rule’s logic.

Bây giờ bạn sẽ thấy tất cả các đánh giá với xếp hạng sao dưới 3 được đánh dấu bằng nền màu đỏ:

Mã thông minh, những điều duy nhất mới ở đây là các đối tượng

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
65 và
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
66:

  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    72
  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    73
  • >>> from openpyxl import load_workbook
    >>> workbook = load_workbook(filename="sample.xlsx")
    >>> workbook.sheetnames
    ['Sheet 1']
    
    >>> sheet = workbook.active
    >>> sheet
    
    
    >>> sheet.title
    'Sheet 1'
    
    74

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
65 khá giống với
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
62, 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ữ, biên giới, căn chỉnh, v.v.ColorScale gives you the ability to create color gradients:

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
8

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
66 chịu trách nhiệm chọn các ô và áp dụng các kiểu nếu các ô khớp với logic quy tắc.

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Sử dụng đối tượng

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
66, bạn có thể tạo nhiều kịch bản định dạng có điều kiện.

>>>

>>> sheet.cell(row=10, column=6)


>>> sheet.cell(row=10, column=6).value
"G-Shock Men's Grey Sport Watch"
9

Tuy nhiên, để có tính đơn giản, gó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)
(, )
(, )
(, )
0 cung cấp 3 định dạng tích hợp giúp tạo ra một vài mẫu định dạng có điều kiện phổ biến. Những bản dựng này là:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Biểu tượng cho phép bạn thêm một biểu tượng vào ô theo giá trị của nó:IconSet allows you to add an icon to the cell according to its value:

>>>

>>> sheet["A1:C2"]
((, , ),
 (, , ))
0

Bạ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ỉ ra khi giá trị của ô là 1 và, khi xếp hạng trở nên tốt hơn, mũi tên bắt đầu hướng lên và trở thành màu xanh lá cây:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Gó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)
(, )
(, )
(, )
0 có 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ên.

Cuối cùng, dữ liệu cho phép bạn tạo thanh tiến trình:DataBar allows you to create progress bars:

>>>

>>> sheet["A1:C2"]
((, , ),
 (, , ))
1

Bạ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ỉ ra khi giá trị của ô là 1 và, khi xếp hạng trở nên tốt hơn, mũi tên bắt đầu hướng lên và trở thành màu xanh lá cây:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Gó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)
(, )
(, )
(, )
0 có 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ên.

Cuối cùng, dữ liệu cho phép bạn tạo thanh tiến trình:

Bây giờ bạn sẽ thấy một thanh tiến trình màu xanh

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

>>> 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 để xem một loạt các tùy chọn khác.

Thêm hình ảnh

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Mặc dù hình ảnh không phải là thứ mà bạn thường thấy trong bảng tính, nhưng nó rấ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.

>>> sheet["A1:C2"]
((, , ),
 (, , ))
2

Để có thể tải hình ảnh vào bảng tính bằ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)
(, )
(, )
(, )
0, bạn sẽ phải cài đặt
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
79:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Ngoài ra, bạn cũng sẽ cần một hình ảnh. Ví dụ này, bạn có thể lấy logo Python thực sự bên dưới và chuyển đổi nó từ

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
80 sang
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
81 bằng bộ chuyển đổi trực tuyến như CloudConvert.com, hãy lưu tệp cuối cùng là
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
82 và sao chép nó vào thư mục gốc nơi bạn đang chạy ví dụ của mình :

Sau đó, đây là mã bạn cần nhập hình ảnh đó vào bảng tính >>> from openpyxl import load_workbook >>> workbook = load_workbook(filename="sample.xlsx") >>> workbook.sheetnames ['Sheet 1'] >>> sheet = workbook.active >>> sheet >>> sheet.title 'Sheet 1' 83:

Bạn có một hình ảnh trên bảng tính của bạn! Đây là:

Hình ảnh góc trên cùng góc trên là trên ô bạn đã chọn, trong trường hợp này là

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
84.

Thêm biểu đồ đẹp

Một điều mạnh mẽ khác bạn có thể làm với bảng tính là tạo ra một loạt các 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 rất nhiều dữ liệu. Có rất nhiều loại biểu đồ khác nhau: biểu đồ thanh, biểu đồ hình tròn, biểu đồ dòng, v.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ó hỗ trợ cho rất nhiều 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 cho mỗi loại biểu đồ:

>>> sheet["A1:C2"]
((, , ),
 (, , ))
3

Đối với bất kỳ biểu đồ nào bạn muốn xây dựng, bạn sẽ cần xác định loại biểu đồ:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
86,
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
87, v.v., cộng với dữ liệu được sử dụng cho biểu đồ, được gọi là
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
88.bar chart that displays the total number of sales per product:

>>> sheet["A1:C2"]
((, , ),
 (, , ))
4

Trước khi bạn có thể xây dựng biểu đồ của mình, bạn cần xác định dữ liệu bạn muốn thấy được thể hiện trong đó. Đôi khi, bạn có thể sử dụng bộ dữ liệu như hiện tại, nhưng những lần khác bạn cần xoa bóp dữ liệu một chút để có thêm thông tin.online product sales online and in-store product sales:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

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:

Bây giờ bạn sẽ bắt đầu bằng cách tạo biểu đồ thanh hiển thị tổng số doanh số cho mỗi sản phẩm:line chart instead, changing the data a bit:

>>> sheet["A1:C2"]
((, , ),
 (, , ))
5

Ở đó 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 doanh số 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 đồ là trên ô bạn đã thêm biểu đồ vào. Trong trường hợp của bạn, đó là trên ô

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
89.

>>> sheet["A1:C2"]
((, , ),
 (, , ))
6

Thay vào đó, hãy thử tạo biểu đồ dòng, thay đổi dữ liệu một chút:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Với mã trên, bạn sẽ có thể tạo một số dữ liệu ngẫu nhiên liên quan đến doanh số của 3 sản phẩm khác nhau trong cả năm.

Sau khi hoàn thành, bạn có thể rất dễ dàng tạo biểu đồ dòng với mã sau:

Ở đây, kết quả của đoạn mã trên:

Một điều cần lưu ý ở đây là thực tế là bạn sử dụng

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
90 khi thêm dữ liệu. Đối số này làm cho hàng biểu đồ biểu đồ theo từng hàng thay vì cột theo cột.

>>> sheet["A1:C2"]
((, , ),
 (, , ))
7

Trong dữ liệu mẫu của bạn, 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 load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
91. 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ẽ có được so sánh hàng tháng về doanh số.

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Một điểm khác biệt khác có liên quan đến thay đổi đối số trên là thực tế là

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
88 của chúng tôi bây giờ bắt đầu từ cột đầu tiên,
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
93, thay vì cái thứ hai. Thay đổi này là cần thiết bởi vì biểu đồ hiện mong đợi cột đầu tiên có các tiêu đề.

Có một vài điều khác bạn cũng có thể thay đổi về phong cách của biểu đồ. Ví dụ: bạn có thể thêm các danh mục cụ thể vào biểu đồ:

>>> sheet["A1:C2"]
((, , ),
 (, , ))
8

Điều này sẽ tạo ra một bảng tính như dưới đây:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Như bạn có thể thấy, những thay đổi nhỏ như ở trên làm cho việc đọc biểu đồ của bạn một nhiệm vụ 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 biểu đồ của bạn bằng cách sử dụng thuộc tính

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
96 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:

>>> sheet["A1:C2"]
((, , ),
 (, , ))
9

Với phong cách được chọn ở trên, tất cả các dòng có một số màu cam:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Không có tài liệu rõ ràng về mỗi số kiểu trông như thế nào, nhưng bảng tính này có một vài ví dụ về các kiểu có sẵn.

Ở đây, mã đầy đủ được sử dụng để tạo biểu đồ dòng với các danh mục, tiêu đề trục và phong cá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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
0

Có rất nhiều loại biểu đồ và tùy chỉnh bạn có thể áp dụng, vì vậy hãy chắc chắn kiểm tra 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ể.

Chuyển đổi các lớp Python sang bảng tính Excel

Bạn đã thấy cách chuyển đổi dữ liệu bảng tính Excel thành các lớp Python, nhưng bây giờ hãy để Lừa 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ạ liên quan đến đố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 những đối tượng tương tự vào bảng tính.

Hãy giả sử các lớp dữ liệu sau để thể hiện 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
1

Bây giờ, hãy để tạo ra 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

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename="sample.xlsx")
>>> workbook.sheetnames
['Sheet 1']

>>> sheet = workbook.active
>>> sheet


>>> sheet.title
'Sheet 1'
97:

>>> # 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
2

Bằ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 nó thành một 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
3

Đó 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 tuyệt vời mà bạn có được gần đây để thêm biểu đồ để hiển thị dữ liệu đó trực quan hơn?

Được rồi, sau đó bạn có thể làm điều 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
4

Bây giờ chúng ta nói chuyện! Ở đây, một bảng tính được tạo từ các đối tượng cơ sở dữ liệu và với biểu đồ và mọi thứ:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Đó là một cách tuyệt vời để bạn kết thúc kiến ​​thức mới về biểu đồ!

Tiền thưởng: Làm việc với gấu trúc

Mặc dù bạn có thể sử dụng gấu trúc để xử lý các tệp Excel, nhưng có một vài điều mà bạn có thể hoàn thành bằng gấu trúc hoặc bạn sẽ tốt hơn khi sử dụng trực tiế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)
(, )
(, )
(, )
0.

Ví dụ: một số lợi thế của việc 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)
(, )
(, )
(, )
0 là khả năng dễ dàng tùy chỉnh bảng tính của bạn với 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ế,

>>> 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ó hỗ trợ cho cả việc chuyển đổi dữ liệu từ DataFrame của Pandas thành sổ làm việc hoặc ngược lại, chuyển đổi sổ làm việc
>>> 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 thành một khung dữ liệu gấu trúc.

Trước tiên, hãy nhớ cài đặt gói

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
02:

Sau đó, hãy để Lôi 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
5

Bây giờ bạn có một số dữ liệu, bạn có thể sử dụng

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
03 để chuyển đổi nó từ DataFrame thành một 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
6

Bạn sẽ thấy một bảng tính trông như thế này:

Hướng dẫn can you manipulate excel with python? - bạn có thể thao tác excel với python không?

Nếu bạn muốn thêm chỉ mục DataFrame, bạn có thể thay đổi

>>> sheet["A1"]


>>> sheet["A1"].value
'marketplace'

>>> sheet["F10"].value
"G-Shock Men's Grey Sport Watch"
04 và nó sẽ thêm mỗi chỉ mục hàng của bạn vào bảng tính của bạn.

Mặ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ể làm điều đó 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
7

Ngoà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, thì bạn cũng có thể làm điều đó như thế này thay vào đó: thay 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
8

Sử dụng các chỉ mục và cột cho phép bạn truy cập dữ liệu từ DataFrame của mình một cách 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]
((,
  ,
  ...
  ,
  ),
 (,
  ,
  ...
  ,
  ))
9

Ở đó, bạn có muốn 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)
(, )
(, )
(, )
0 để trang bị bộ dữ liệu gấu trúc của bạn hoặc sử dụng gấu trúc để thực hiện một số đại số khó tính, bây giờ bạn biết cách chuyển đổi giữa cả hai gói.

Sự kết luận

Phew, sau thời gian dài đọc đó, bây 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

>>> 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, người bạn đồng hành đáng tin cậy của bạn, để:

  • 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

>>> 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ó 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ữa.

Vui lòng để lại bất kỳ bình luận nào dưới đây 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 mà bạn thích nghe thêm.

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Chỉnh sửa bảng tính Excel trong Python với OpenPyXL This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Editing Excel Spreadsheets in Python With openpyxl

Python có thể thao túng các tệp excel không?

Mô -đun OpenPyXL cho phép các chương trình Python của bạn đọc và sửa đổi các tệp bảng tính Excel. Ví dụ: bạn có thể có nhiệm vụ nhàm chán là sao chép một số dữ liệu nhất định từ một bảng tính và dán nó vào một dữ liệu khác.. For example, you might have the boring task of copying certain data from one spreadsheet and pasting it into another one.

Bạn có thể sử dụng Python để tự động hóa Excel không?

Ngày 1 tháng 5 năm 2022. Python có đầy đủ các thư viện phong phú, các gói hữu ích và các chức năng sẵn sàng sử dụng để tự động hóa tạo điều kiện cho thử nghiệm rất nhiều.Python cho phép bạn chọn những gì tốt nhất cho dự án của bạn.Trong bài viết này, chúng tôi sẽ triển khai các thư viện Python và dữ liệu Excel để tự động hóa.

Excel có tốt với Python không?

Excel là một công cụ cấp nhập cảnh tuyệt vời và là một cách nhanh chóng và dễ dàng để phân tích một bộ dữ liệu.Nhưng đối với thời kỳ hiện đại, với các bộ dữ liệu lớn và các phân tích và tự động hóa phức tạp hơn, Python cung cấp các công cụ, kỹ thuật và sức mạnh xử lý vượt trội, trong nhiều trường hợp, thiếu.Python provides the tools, techniques and processing power that Excel, in many instances, lacks.

Bạn có thể sử dụng Python trong Excel thay vì VBA không?

Phải, chắc chắn rồi!VBA thường được sử dụng để tự động hóa Excel với macro, thêm các chức năng bảng tính do người dùng mới xác định (UDFS) và phản ứng với các sự kiện Excel.Tất cả mọi thứ bạn đã làm trước đây trong Excel bằng VBA đều có thể đạt được với Python.Sử dụng Python làm thay thế VBA có nhiều lợi ích và thường nhanh hơn VBA!! VBA is commonly used to automate Excel with macros, add new user defined worksheet functions (UDFs) and react to Excel events. Everything you would previously have done in Excel using VBA can be achieved with Python. Using Python as a VBA replacement has many benefits and is usually faster than VBA!