Làm việc với các ô
Tổng quan
Mỗi bảng tính đều cung cấp một cells bộ sưu tập ánh xạ các chuỗi địa chỉ theo kiểu Excel (chẳng hạn như "A1", "B3") Cell đối tượng. Bạn truy cập một ô trực tiếp bằng chỉ mục:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Access a cell by address
cell = ws.cells["A1"]Giá trị, công thức và thông tin kiểu dáng đều nằm trên Cell đối tượng. Bạn có thể hoặc thay đổi một ô tại chỗ bằng cách ghi vào .value hoặc .formula thuộc tính, hoặc thay thế toàn bộ ô bằng cách gán một Cell đối tượng mới vào địa chỉ.
Đọc và Ghi Giá Trị
Gán cho cell.value để ghi một chuỗi, số nguyên hoặc số thực. Đọc lại cùng thuộc tính để lấy lại bất kỳ dữ liệu nào đã được lưu.
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
##Write a string
ws.cells["A1"].value = "Hello, world"
##Write an integer
ws.cells["A2"].value = 42
##Write a float
ws.cells["A3"].value = 3.14159
##Read values back
print(ws.cells["A1"].value) # Hello, world
print(ws.cells["A2"].value) # 42
print(ws.cells["A3"].value) # 3.14159
workbook.save("values_demo.xlsx")Các .value thuộc tính chấp nhận bất kỳ kiểu Python vô hướng nào. Thư viện lưu trữ kiểu Python nguyên trạng; không có chuyển đổi ngầm xảy ra khi ghi.
Sử dụng Hàm Khởi Tạo Cell
Cái Cell hàm khởi tạo cho phép bạn tạo một ô với một giá trị (và tùy chọn một công thức) trong một biểu thức duy nhất. Gán kết quả Cell đối tượng vào chỉ mục địa chỉ để đặt nó vào bảng tính.
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Integer cell
ws.cells["A1"] = Cell(42)
##String cell
ws.cells["A2"] = Cell("Revenue")
##Float cell
ws.cells["A3"] = Cell(3.14)
##Explicitly empty cell (no value, no formula)
ws.cells["A4"] = Cell(None)
workbook.save("cell_constructor_demo.xlsx")Đối số vị trí đầu tiên của Cell là giá trị. Khi bạn truyền None cái ô được lưu mà không có giá trị, điều này hữu ích khi bạn muốn đặt một công thức riêng biệt hoặc muốn một ô trống rõ ràng thay vì không có ô nào.
Ô Công Thức
Một ô công thức lưu trữ một chuỗi biểu thức tương thích với Excel cùng với (hoặc thay cho) một giá trị tĩnh. Có hai cách để tạo một ô như vậy.
Thông qua hàm tạo Cell — truyền None làm giá trị và chuỗi công thức làm đối số thứ hai:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"] = Cell(10)
ws.cells["A2"] = Cell(20)
ws.cells["A3"] = Cell(30)
##Formula via constructor: value=None, formula="=SUM(A1:A3)"
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")
workbook.save("formula_constructor.xlsx")Thông qua .formula thuộc tính — đặt thuộc tính trên một ô hiện có:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
for i, v in enumerate([5, 10, 15, 20, 25], start=1):
ws.cells[f"A{i}"].value = v
ws.cells["B1"].formula = "=AVERAGE(A1:A5)"
workbook.save("formula_property.xlsx")Tham Khảo Nhanh Các Công Thức Thông Dụng
| Mục đích | Chuỗi công thức |
|---|---|
| Tổng một phạm vi | =SUM(A1:A10) |
| Trung bình của một phạm vi | =AVERAGE(A1:A10) |
| Giá trị tối đa | =MAX(A1:A10) |
| Giá trị tối thiểu | =MIN(A1:A10) |
| Đếm không rỗng | =COUNT(A1:A10) |
| Giá trị có điều kiện | =IF(A1>0,"Positive","Non-positive") |
| Tra cứu một giá trị | =VLOOKUP(D1,A1:B10,2,FALSE) |
| Nối các chuỗi | =CONCATENATE(A1," ",B1) |
Chuỗi công thức phải bắt đầu bằng =. Thư viện lưu chúng nguyên văn; Excel (hoặc một trình đọc tương thích) sẽ đánh giá biểu thức khi tệp được mở.
Duyệt Dữ liệu
Sử dụng vòng lặp Python tiêu chuẩn để điền một cột hoặc hàng từ danh sách:
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
monthly_sales = [12_500, 14_200, 9_800, 17_600, 21_100, 18_400]
##Write a header
ws.cells["A1"].value = "Monthly Sales"
##Write data starting at row 2 (index 1 → address A2)
for i, val in enumerate(monthly_sales, start=2):
ws.cells[f"A{i}"].value = val
##Write a SUM formula below the data
last_row = 1 + len(monthly_sales) # row index of last data cell
ws.cells[f"A{last_row + 1}"].formula = f"=SUM(A2:A{last_row})"
workbook.save("monthly_sales.xlsx")Mẫu enumerate(iterable, start=N) ánh xạ một cách sạch sẽ lên số hàng của Excel bởi vì các hàng trong Excel bắt đầu từ 1. Bắt đầu tại start=2 dành riêng hàng 1 cho một tiêu đề.
Các Kiểu Giá Trị Hỗn Hợp
Ví dụ hoàn chỉnh dưới đây xây dựng một bộ dữ liệu nhỏ với một hàng tiêu đề dạng văn bản, ba hàng dữ liệu chứa số nguyên, số thực và chuỗi, và một hàng công thức tóm tắt các cột số.
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##--- Header row ---
ws.cells["A1"].value = "Product"
ws.cells["B1"].value = "Units Sold"
ws.cells["C1"].value = "Unit Price"
ws.cells["D1"].value = "Revenue"
##--- Data rows ---
##Row 2
ws.cells["A2"] = Cell("Widget A")
ws.cells["B2"] = Cell(120)
ws.cells["C2"] = Cell(9.99)
ws.cells["D2"] = Cell(None, "=B2*C2")
##Row 3
ws.cells["A3"] = Cell("Widget B")
ws.cells["B3"] = Cell(85)
ws.cells["C3"] = Cell(14.50)
ws.cells["D3"] = Cell(None, "=B3*C3")
##Row 4
ws.cells["A4"] = Cell("Widget C")
ws.cells["B4"] = Cell(200)
ws.cells["C4"] = Cell(4.75)
ws.cells["D4"] = Cell(None, "=B4*C4")
##--- Summary row ---
ws.cells["A5"].value = "TOTAL"
ws.cells["B5"] = Cell(None, "=SUM(B2:B4)")
ws.cells["D5"] = Cell(None, "=SUM(D2:D4)")
workbook.save("mixed_types_dataset.xlsx")
print("Saved mixed_types_dataset.xlsx")Sau khi mở tệp trong Excel (hoặc bất kỳ ứng dụng bảng tính tương thích nào), cột D cột và B5 / D5 các ô sẽ hiển thị kết quả đã được đánh giá của các biểu thức công thức.
Mẹo
None giá trị vs chuỗi rỗng
Cell(None) và ws.cells["A1"].value = None tạo một ô không có giá trị lưu trữ giá trị — không thể phân biệt với một ô chưa bao giờ được ghi trong hầu hết các bảng tính trình đọc. Cell("") hoặc ws.cells["A1"].value = "" tạo một ô một cách rõ ràng chứa một chuỗi rỗng, mà một số trình đọc và công thức xử lý khác nhau (ví dụ, =COUNT bỏ qua các ô chuỗi rỗng theo cùng cách nó bỏ qua các ô trống ô, nhưng =COUNTA đếm chúng).
Chuỗi công thức vs giá trị tĩnh
Đọc .value từ một ô công thức trả về None (hoặc giá trị đã lưu trữ cuối cùng nếu đã được đặt trước khi công thức được gán). Đọc .formula trả về chuỗi biểu thức. Nếu bạn cần phân biệt giữa một ô công thức và một ô plain-value tại thời gian chạy, kiểm tra xem ws.cells["A1"].formula không rỗng:
cell = ws.cells["A1"]
if cell.formula:
print(f"Formula: {cell.formula}")
else:
print(f"Value: {cell.value}")Xem Thêm
- Tham chiếu API: Tài liệu đầy đủ về lớp và phương thức cho
aspose.cells_foss - Cơ sở kiến thức: Hướng dẫn cách thực hiện theo nhiệm vụ
- Tổng quan sản phẩm: Tóm tắt tính năng và khả năng
- Bắt đầu / Cài đặt: pip install và thiết lập
- Blog: Giới thiệu Aspose.Cells FOSS: Tổng quan thư viện và khởi động nhanh