Knowledgebase

Bảng trong Python | Aspose

Trong bài viết này chúng tôi sẽ làm việc với các bảng trong Python, giới thiệu cách dễ nhất để tạo một bảng và thao tác dữ liệu bên trong bảng. Nhờ API của chúng tôi, bạn có thể thao tác các bảng và xuất chúng sang các định dạng khác nhau, chẳng hạn như Word, Excel, PDF, v.v.
Chúng tôi sẽ giới thiệu Aspose.Words for Python via .NET, và tập trung vào việc tạo và chèn bảng bằng API này.

Bảng trong Python

Aspose.Words for Python via .NET là một thư viện lớp được thiết kế để đọc và thao tác các tài liệu đa dạng như Microsoft Word (DOCX, DOC, ODT), Web (Markdown, HTML), PDF và các định dạng khác. Với API Python này, bạn có thể tạo, chỉnh sửa, render và chuyển đổi tệp Word sang nhiều định dạng, tạo báo cáo và trực quan hoá dữ liệu mà không cần phần mềm bên ngoài.
Hơn 100 lớp Python để xử lý tài liệu và các thao tác định dạng dữ liệu đang chờ bạn khám phá.

Làm việc với các bảng trong Python

Các bảng cho phép tổ chức một lượng lớn thông tin và hiển thị chúng dưới dạng lưới với các hàng và cột. Chúng rất hữu ích khi hiển thị dữ liệu dạng bảng vì cung cấp khả năng kiểm soát thiết kế nội dung tốt hơn.
Bảng là tập hợp dữ liệu có cấu trúc gồm các hàng và cột. Chúng được hỗ trợ đầy đủ trong thư viện của chúng tôi, và bạn có thể dễ dàng chỉnh sửa, thay đổi, thêm và xóa bảng.
Dưới đây chúng tôi sẽ chỉ cho bạn cách tạo một bảng mới bằng Python, và trong tài liệu của chúng tôi, bạn có thể xem cách áp dụng định dạng , làm việc với TableStyle , làm việc với cột và hàng , và ghép và tách bảng .

Tạo bảng trong Python

Thư viện của chúng tôi cung cấp các phương pháp khác nhau để tạo bảng mới trong tài liệu, và trong bài viết này, chúng tôi sẽ xem cách sử dụng một số phương pháp đó.
Bảng mới tạo có các giá trị tương tự các giá trị mặc định của Microsoft Word.

Thuộc tính bảng Python

Bạn có thể chèn một bảng bằng lớp DocumentBuilder , và các phương thức sau để xây dựng bảng:
DocumentBuilder.start_table
DocumentBuilder.insert_cell
DocumentBuilder.end_row
DocumentBuilder.end_table
DocumentBuilder.writeln

Phương pháp xây dựng bảng Python

Tạo một bảng trong Python theo 7 bước:

  1. Bắt đầu bảng bằng DocumentBuilder.start_table.
  2. Sử dụng DocumentBuilder.insert_cell để chèn một ô vào bảng, và dùng DocumentBuilder.cell_format để chỉ định định dạng ô.
  3. Dùng DocumentBuilder để chèn nội dung vào ô.
  4. Lặp lại các bước 2 và 3 cho đến khi hoàn thành một hàng.
  5. Gọi phương thức DocumentBuilder.end_row để kết thúc hàng và dùng DocumentBuilder.row_format để định dạng hàng.
  6. Lặp lại các bước 2‑5 cho đến khi hoàn thành toàn bộ bảng.
  7. Sử dụng DocumentBuilder.end_table để kết thúc bảng.

Chi tiết hơn về lớp DocumentBuilder và các phương thức tạo bảng được mô tả trong tài liệu của chúng tôi .

Trong ví dụ dưới đây, bạn có thể thấy cách tạo một bảng đơn giản với định dạng mặc định bằng DocumentBuilder.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
    
# Bắt đầu xây dựng bảng.
builder.start_table()
builder.insert_cell()
builder.write("Row 1, Cell 1 Content.")
    
# Xây dựng ô thứ hai.
builder.insert_cell()
builder.write("Row 1, Cell 2 Content.")
    
# Gọi phương thức sau để kết thúc hàng và bắt đầu hàng mới.
builder.end_row()

# Xây dựng ô đầu tiên của hàng thứ hai.
builder.insert_cell()
builder.write("Row 2, Cell 1 Content")

# Xây dựng ô thứ hai.
builder.insert_cell()
builder.write("Row 2, Cell 2 Content.")
builder.end_row()

# Báo hiệu đã hoàn thành việc xây dựng bảng.
builder.end_table()

doc.save(docs_base.artifacts_dir + "WorkingWithTables.create_simple_table.docx")

Tạo một bảng có định dạng bằng DocumentBuilder với đoạn mã mẫu dưới đây.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

table = builder.start_table()
builder.insert_cell()

# Định dạng toàn bộ bảng phải được áp dụng sau khi ít nhất một hàng đã tồn tại.
table.left_indent = 20.0

# Đặt chiều cao và quy tắc chiều cao cho hàng tiêu đề.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

builder.cell_format.shading.background_pattern_color = drawing.Color.from_argb(198, 217, 241)
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.size = 16
builder.font.name = "Arial"
builder.font.bold = True

builder.cell_format.width = 100.0
builder.write("Header Row,\n Cell 1")

# Không cần chỉ định chiều rộng cho ô này vì nó được kế thừa từ ô trước.
builder.insert_cell()
builder.write("Header Row,\n Cell 2")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Header Row,\n Cell 3")
builder.end_row()

builder.cell_format.shading.background_pattern_color = drawing.Color.white
builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# Đặt lại chiều cao và quy tắc chiều cao cho phần thân bảng.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()
    
# Đặt lại định dạng phông chữ.
builder.font.size = 12
builder.font.bold = False

builder.write("Row 1, Cell 1 Content")
builder.insert_cell()
builder.write("Row 1, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 1, Cell 3 Content")
builder.end_row()

builder.insert_cell()
builder.cell_format.width = 100.0
builder.write("Row 2, Cell 1 Content")

builder.insert_cell()
builder.write("Row 2, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 2, Cell 3 Content.")
builder.end_row()
builder.end_table()

doc.save(docs_base.artifacts_dir + "WorkingWithTables.formatted_table.docx")

Chèn một bảng đã tồn tại

Nếu tài liệu của bạn đã có một bảng và bạn muốn sao chép bảng này để thực hiện một số thay đổi, cách dễ nhất là sử dụng phương thức Table.clone để giữ nguyên mọi định dạng.
Trong ví dụ dưới đây, bạn có thể thấy cách chèn một bảng, và nếu cần tệp mẫu của ví dụ này, bạn có thể tải xuống từ đây .

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Tables.docx")

table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Nhân bản bảng và chèn vào tài liệu sau bảng gốc.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# Chèn một đoạn văn trống giữa hai bảng,
# nếu không chúng sẽ bị gộp thành một khi lưu; điều này liên quan tới việc xác thực tài liệu.
table.parent_node.insert_after(aw.Paragraph(doc), table)
    
doc.save(docs_base.artifacts_dir + "WorkingWithTables.clone_complete_table.docx")

Nếu bạn có câu hỏi về bảng, sản phẩm Aspose.Words for Python via .NET và cần hỗ trợ từ đội ngũ hỗ trợ trả phí của chúng tôi , hãy thoải mái liên hệ với chúng tôi .