Áp dụng định dạng bảng

Mỗi phần tử của bảng có thể được áp dụng với các định dạng khác nhau. Ví dụ: định dạng bảng sẽ được áp dụng cho toàn bộ bảng, định dạng hàng cho chỉ các hàng cụ thể, định dạng ô chỉ cho một số ô nhất định.

Aspose.Words cung cấp API phong phú để truy xuất và áp dụng định dạng cho bảng. Bạn có thể sử dụng các nút Table, RowFormatCellFormat để đặt định dạng.

Trong bài viết này, chúng ta sẽ nói về cách áp dụng định dạng cho các nút bảng khác nhau và những cài đặt định dạng bảng mà Aspose.Words hỗ trợ.

Áp dụng định dạng cho các nút khác nhau

Trong phần này, chúng ta sẽ xem xét việc áp dụng định dạng cho các nút bảng khác nhau.

Định dạng cấp bảng

Để áp dụng định dạng cho một bảng, bạn có thể sử dụng các thuộc tính có sẵn trên nút Table tương ứng bằng các lớp Table, PreferredWidthTableCollection.

Các hình ảnh bên dưới thể hiện các tính năng định dạng Table trong Microsoft Word và các thuộc tính tương ứng của chúng trong Aspose.Words.

formattin-features-table-level-aspose-words-net

formatting-table-options-aspose-words-net

Ví dụ mã sau đây cho thấy cách áp dụng đường viền phác thảo cho bảng:

Ví dụ mã sau đây cho thấy cách tạo bảng với tất cả các đường viền được bật (lưới):

Định dạng cấp hàng

Định dạng Cấp hàng có thể được kiểm soát bằng cách sử dụng các lớp Row, RowFormatRowCollection.

Các hình ảnh bên dưới thể hiện các tính năng định dạng Row trong Microsoft Word và các thuộc tính tương ứng của chúng trong Aspose.Words.

formatting-row-level-aspose-words-net

Ví dụ mã sau đây cho thấy cách sửa đổi định dạng hàng của bảng:

Định dạng cấp độ ô

Định dạng cấp ô được kiểm soát bởi các lớp Cell, CellFormatCellCollection.

Các hình ảnh bên dưới thể hiện các tính năng định dạng Cell trong Microsoft Word và các thuộc tính tương ứng của chúng trong Aspose.Words.

formatting-cell-level-aspose-words-net

auto-formatting-cell-level-aspose-words-net

Ví dụ mã sau đây cho thấy cách sửa đổi định dạng của ô trong bảng:

Ví dụ về mã sau đây cho thấy cách đặt lượng khoảng trắng (tính bằng điểm) để thêm vào bên trái/trên cùng/phải/dưới cùng của nội dung của ô:

Chỉ định chiều cao hàng

Cách đơn giản nhất để đặt chiều cao hàng là sử dụng DocumentBuilder. Bằng cách sử dụng thuộc tính RowFormat thích hợp, bạn có thể đặt cài đặt chiều cao mặc định hoặc áp dụng chiều cao khác nhau cho mỗi hàng trong bảng.

Trong Aspose.Words, chiều cao hàng của bảng được kiểm soát bởi:

  • thuộc tính chiều cao hàng – Height
  • thuộc tính quy tắc chiều cao cho hàng đã cho – HeightRule

Đồng thời, có thể đặt chiều cao khác nhau cho mỗi hàng – điều này cho phép bạn kiểm soát rộng rãi các cài đặt trên bàn.

Ví dụ mã sau đây cho thấy cách tạo bảng chứa một ô và áp dụng định dạng hàng:

Chỉ định độ rộng bảng và ô

Bảng trong tài liệu Microsoft Word cung cấp một số cách khác nhau để thay đổi kích thước bảng và từng ô riêng lẻ. Các thuộc tính này cho phép kiểm soát đáng kể hình thức và hoạt động của bảng, do đó Aspose.Words hỗ trợ hoạt động của bảng, như trong Microsoft Word.

Điều quan trọng cần biết là các thành phần bảng trình bày một số thuộc tính khác nhau có thể ảnh hưởng đến cách tính độ rộng của bảng tổng thể cũng như các ô riêng lẻ:

  • Chiều rộng ưa thích trên bàn
  • Chiều rộng ưa thích trên từng ô riêng lẻ
  • Cho phép autofit trên bàn

Bài viết này trình bày chi tiết cách hoạt động của các thuộc tính tính toán chiều rộng bảng khác nhau và cách có toàn quyền kiểm soát việc tính toán chiều rộng bảng. Đây là đặc biệt hữu ích khi biết trong những trường hợp bố cục bảng không xuất hiện như mong đợi.

Cách sử dụng chiều rộng ưa thích

Chiều rộng mong muốn của một bảng hoặc các ô riêng lẻ được xác định thông qua thuộc tính chiều rộng ưa thích, là kích thước mà một phần tử cố gắng để phù hợp. Nghĩa là, chiều rộng ưa thích có thể được chỉ định cho toàn bộ bảng hoặc cho từng ô riêng lẻ. Trong một số trường hợp, có thể không khớp chính xác với chiều rộng này, nhưng chiều rộng thực tế sẽ gần với giá trị này trong hầu hết các trường hợp.

Loại và giá trị chiều rộng ưu tiên thích hợp được đặt bằng các phương thức của lớp PreferredWidth:

  • phương pháp Auto để chỉ định tự động hoặc “không có chiều rộng ưu tiên”
  • phương pháp FromPercent để chỉ định chiều rộng phần trăm
  • phương pháp FromPoints để xác định chiều rộng theo điểm

Các hình ảnh bên dưới thể hiện các tính năng cài đặt chiều rộng ưa thích trong Microsoft Word và các thuộc tính tương ứng của chúng trong Aspose.Words.

formatting-table-properties-aspose-words-net

Bạn có thể xem ví dụ về cách áp dụng các tùy chọn này cho bảng thực trong tài liệu trong hình bên dưới.

todo:image_alt_text

Chỉ định bảng ưa thích hoặc chiều rộng ô

Trong Aspose.Words, độ rộng của bảng và ô được đặt bằng thuộc tính Table.PreferredWidth và thuộc tính CellFormat.PreferredWidth, với các tùy chọn có sẵn trong bảng liệt kê PreferredWidthType:

  • Auto, tương đương với việc không đặt chiều rộng ưu tiên
  • Percent, phù hợp với phần tử tương ứng với không gian có sẵn trong cửa sổ hoặc kích thước vùng chứa và tính toán lại giá trị khi chiều rộng có sẵn thay đổi
  • Points, tương ứng với một phần tử có chiều rộng được chỉ định tính bằng điểm

Việc sử dụng thuộc tính Table.PreferredWidth sẽ điều chỉnh độ rộng ưa thích của nó so với vùng chứa: trang, cột văn bản hoặc ô bảng bên ngoài nếu đó là bảng lồng nhau.

Ví dụ về mã sau đây cho biết cách đặt bảng tự động vừa với 50% chiều rộng của trang:

Việc sử dụng thuộc tính CellFormat.PreferredWidth trên một ô nhất định sẽ điều chỉnh độ rộng ưa thích của ô đó.

Ví dụ về mã sau đây cho thấy cách đặt các cài đặt chiều rộng ưa thích khác nhau:

Tìm loại và giá trị chiều rộng ưa thích

Bạn có thể sử dụng thuộc tính TypeValue để tìm chi tiết chiều rộng ưa thích của bảng hoặc ô mong muốn.

Ví dụ mã sau đây cho thấy cách truy xuất loại chiều rộng ưa thích của ô trong bảng:

Cách đặt Tự động điều chỉnh

Thuộc tính AllowAutoFit cho phép các ô trong bảng phát triển và thu nhỏ theo tiêu chí đã chọn. Ví dụ: bạn có thể sử dụng tùy chọn Tự động điều chỉnh theo cửa sổ để điều chỉnh bảng theo chiều rộng của trang và tùy chọn Tự động điều chỉnh nội dung để cho phép mỗi ô phát triển hoặc thu nhỏ tùy theo nội dung của nó.

Theo mặc định, Aspose.Words chèn bảng mới bằng Tự động điều chỉnh theo cửa sổ. Bảng sẽ có kích thước theo chiều rộng trang có sẵn. Để thay đổi kích thước bảng, bạn có thể gọi phương thức AutoFit. Phương thức này chấp nhận một bảng liệt kê AutoFitBehavior chỉ định loại tự động điều chỉnh nào được áp dụng cho bảng.

Điều quan trọng cần biết là phương pháp tự động điều chỉnh thực chất là một phím tắt áp dụng các thuộc tính khác nhau cho bảng cùng một lúc. Đây là những thuộc tính thực sự cung cấp cho bảng hành vi được quan sát. Chúng ta sẽ thảo luận về các thuộc tính này cho từng tùy chọn tự động điều chỉnh.

Ví dụ mã sau đây cho thấy cách đặt bảng để thu nhỏ hoặc tăng kích thước từng ô theo nội dung của nó:

Tự động điều chỉnh bảng thành cửa sổ

Khi áp dụng tính năng tự động điều chỉnh cho một cửa sổ cho một bảng, các thao tác sau thực sự được thực hiện một cách ngầm:

  1. Thuộc tính Table.AllowAutoFit được kích hoạt để tự động thay đổi kích thước các cột cho phù hợp với nội dung có sẵn, sử dụng giá trị Table.PreferredWidth là 100%
  2. CellFormat.PreferredWidth bị xóa khỏi tất cả các ô của bảng
  3. Độ rộng cột được tính toán lại cho nội dung bảng hiện tại – kết quả cuối cùng là một bảng chiếm toàn bộ chiều rộng có sẵn
  4. Độ rộng của các cột trong bảng tự động thay đổi khi người dùng chỉnh sửa văn bản

Ví dụ về mã sau đây cho thấy cách tự động điều chỉnh bảng theo chiều rộng của trang:

Tự động khớp bảng với nội dung

Khi bảng được tự động điều chỉnh nội dung, các bước sau đây thực sự được thực hiện một cách ngầm:

  1. Thuộc tính Table.AllowAutoFit được kích hoạt để tự động thay đổi kích thước từng ô theo nội dung của nó

  2. Xóa chiều rộng bảng ưa thích khỏi Table.PreferredWidth, CellFormat.PreferredWidth cho từng ô trong bảng

  3. Độ rộng cột được tính toán lại cho nội dung bảng hiện tại – kết quả cuối cùng là một bảng trong đó độ rộng cột và chiều rộng của toàn bộ bảng được tự động thay đổi kích thước để phù hợp nhất với nội dung khi người dùng chỉnh sửa văn bản

Ví dụ về mã sau đây cho thấy cách tự động điều chỉnh một bảng cho phù hợp với nội dung của nó:

Tắt tính năng Tự động khớp trong bảng và sử dụng độ rộng cột cố định

Nếu một bảng đã tắt tính năng tự động điều chỉnh và thay vào đó sử dụng chiều rộng cột cố định thì các bước sau sẽ được thực hiện:

  1. Thuộc tính Table.AllowAutoFit bị vô hiệu hóa nên các cột không thể phát triển hoặc thu nhỏ theo nội dung của chúng

  2. Chiều rộng ưa thích của toàn bộ bảng bị xóa khỏi Table.PreferredWidth, CellFormat.PreferredWidth bị xóa khỏi tất cả các ô của bảng

  3. Kết quả cuối cùng là một bảng có độ rộng cột được xác định bởi thuộc tính CellFormat.Width và các cột của nó không được tự động thay đổi kích thước khi người dùng nhập văn bản hoặc khi trang được thay đổi kích thước

Ví dụ về mã sau đây cho biết cách tắt tính năng tự động điều chỉnh và bật chiều rộng cố định cho bảng đã chỉ định:

Thứ tự ưu tiên khi tính chiều rộng ô

Aspose.Words cho phép người dùng xác định độ rộng của bảng hoặc ô thông qua nhiều đối tượng, bao gồm CellFormat – thuộc tính Width của nó hầu hết còn sót lại từ các phiên bản trước, tuy nhiên, nó vẫn hữu ích trong việc đơn giản hóa việc thiết lập độ rộng ô.

Điều quan trọng cần biết là thuộc tính CellFormat.Width hoạt động khác nhau tùy thuộc vào thuộc tính chiều rộng nào khác đã tồn tại trong bảng.

Aspose.Words sử dụng thứ tự sau để tính chiều rộng ô:

Đặt hàng Tài sản Sự miêu tả
1 AllowAutoFit được xác định Nếu AutoFit được bật:
- bảng có thể dài hơn chiều rộng ưa thích để chứa nội dung – nó thường không co lại dưới chiều rộng ưa thích
- mọi thay đổi đối với giá trị CellFormat.Width đều bị bỏ qua và thay vào đó, ô sẽ khớp với nội dung của nó
2 PreferredWidthType có giá trị Points hoặc Percent CellFormat.Width bị bỏ qua
3 PreferredWidthType có giá trị Auto Giá trị từ CellFormat.Width được sao chép và trở thành chiều rộng ưa thích của ô (tính bằng điểm)

Cho phép khoảng cách giữa các ô

Bạn có thể nhận hoặc đặt bất kỳ khoảng trắng bổ sung nào giữa các ô trong bảng tương tự như tùy chọn “Khoảng cách ô” trong Microsoft Word. Điều này có thể được thực hiện bằng cách sử dụng thuộc tính AllowCellSpacing.

Bạn có thể xem ví dụ về cách áp dụng các tùy chọn này cho bảng thực trong tài liệu trong hình bên dưới.

format-cách-giữa các ô-aspose-words-net

Ví dụ mã sau đây cho thấy cách đặt khoảng cách giữa các ô:

Áp dụng đường viền và bóng

Đường viền và bóng có thể được áp dụng cho toàn bộ bảng bằng Table.SetBorder, Table.SetBordersTable.SetShading hoặc chỉ cho các ô cụ thể bằng CellFormat.BordersCellFormat.Shading. Ngoài ra, đường viền hàng có thể được đặt bằng RowFormat.Borders, tuy nhiên không thể áp dụng bóng theo cách này.

Các hình ảnh bên dưới hiển thị cài đặt đường viền và bóng trong Microsoft Word cũng như các thuộc tính tương ứng của chúng trong Aspose.Words.

formatting-border-line-aspose-words-net

formatting-cell-color-aspose-words-net

Ví dụ mã sau đây cho biết cách định dạng bảng và ô có đường viền và màu sắc khác nhau: