Áp Dụng Định Dạ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 chỉ cho các hàng cụ thể, định dạng ô chỉ cho các ô nhất định.

Aspose.Words cung cấp một rich API để truy xuất và áp dụng định dạng cho một 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à cài đặt định dạng bảng 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ách sử dụng các lớp Table, PreferredWidthTableCollection.

Các hình ảnh dưới đây cho thấy một đại diện của 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-cpp

formatting-table-options-aspose-words-cpp

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 xây dựng bảng có bật tất cả các đường viền (lưới):

Định Dạng Cấp Hàng

Cấp hàng

Các hình ảnh dưới đây cho thấy một đại diện của 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-cpp

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

Định Dạng Mức Ô

Định dạng cấp ô được điều khiển bởi các lớp Cell, CellFormatCellCollection.

Các hình ảnh dưới đây cho thấy một đại diện của 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-cpp

auto-formatting-cell-level-aspose-words-cpp

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

Ví dụ mã sau đây cho thấy cách đặt dung lượ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. Sử dụng các 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 bảng được điều khiển 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, một chiều cao khác nhau có thể được đặt 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 bảng.

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

Chỉ Định Chiều Rộng Bảng Và Ô

Một 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à các ô riêng lẻ. Các thuộc tính này cho phép kiểm soát đáng kể sự xuất hiện và hành vi của bảng, do đó Aspose.Words hỗ trợ hành vi của các bảng, như trong Microsoft Word.

Điều quan trọng cần biết là các phần tử 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 các ô riêng lẻ
  • Cho phép tự động trang bị trên bàn

Bài viết này trình bày chi tiết cách các thuộc tính tính toán chiều rộng bảng khác nhau hoạt động và cách kiểm soát hoàn toàn tính toán chiều rộng bảng. Đây là đặc biệt hữu ích để biết trong những trường hợp như vậy mà 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. Đó là, chiều rộng ưa thích có thể được chỉ định cho toàn bộ bảng hoặc cho các ô riêng lẻ. Trong một số trường hợp, có thể không phù hợ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 chiều rộng và giá trị ưa thích thích hợp được đặt bằng các phương thức của lớp PreferredWidth:

  • phương thức 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 thức FromPoints để chỉ định chiều rộng trong các điểm

Các hình ảnh dưới đây cho thấy một đại diện của preferred width setting features 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-cpp

Một ví dụ về cách các tùy chọn này được áp dụng cho một bảng thực trong tài liệu có thể được nhìn thấy trong hình dưới đây.

todo:image_alt_text

Chỉ Định Chiều Rộng Bảng Hoặc Ô Ưa Thích

Trong Aspose.Words, chiều rộng 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 liệt kê PreferredWidthType:

  • Auto, tương đương với không có bộ chiều rộng ưa thích
  • Percent, phù hợp với phần tử so 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 trong các điểm

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 của nó: trang, cột văn bản hoặc ô bảng bên ngoài nếu nó là một bảng lồng nhau.

Ví dụ mã sau đây cho thấy cách đặt bảng thành tự động phù hợp với 50% chiều rộng trang:

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

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

Tìm Loại Chiều Rộng Và Giá trị Ư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 ô bảng:

Cách Đặt Autofit

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 AutoFit to Window để khớp bảng với chiều rộng của trang và tùy chọn AutoFit to Content để cho phép mỗi ô phát triển hoặc thu nhỏ theo nội dung của nó.

Theo mặc định, Aspose.Words chèn một bảng mới bằng AutoFit to Window. 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 pháp này chấp nhận liệt kê AutoFitBehavior chỉ định loại autofit nào được áp dụng cho bảng.

Điều quan trọng cần biết là phương thức autofit thực sự 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 quan sát được. Chúng tôi sẽ thảo luận về các thuộc tính này cho mỗi tùy chọn autofit.

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

AutoFit Bảng Để Cửa Sổ

Khi tự động chuyển sang cửa sổ được áp dụng cho bảng, các thao tác sau thực sự được thực hiện ở hậu trường:

  1. Thuộc tính Table.AllowAutoFit được bật để tự động thay đổi kích thước các cột để 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 ô bảng
  3. Chiều 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. Chiều rộng của các cột trong bảng sẽ tự động thay đổi khi người dùng chỉnh sửa văn bản

Ví dụ mã sau đây cho thấy cách tự động nối bảng với chiều rộng trang:

AutoFit Bảng Thành Nội Dung

Khi bảng được tự động trang bị nội dung, các bước sau đây thực sự được thực hiện đằng sau hậu trường:

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

  2. Chiều rộng bảng ưa thích được loại bỏ khỏi Table.PreferredWidth, CellFormat.PreferredWidth được loại bỏ cho mỗi ô bảng

  3. Chiều 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à bảng trong đó chiều 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ụ mã sau đây cho thấy cách tự động trang bị bảng cho nội dung của nó:

Vô hiệu hóa AutoFit Trong Bảng Và Sử dụng Độ Rộng Cột Cố định

Nếu một bảng có autofit bị vô hiệu hóa và chiều rộng cột cố định được sử dụng thay thế, các bước sau được thực hiện:

  1. Table.AllowAutoFit thuộc tính bị vô hiệu hóa để các cột không phát triển hoặc thu nhỏ nội dung của chúng
  2. Chiều rộng ưa thích của toàn bộ bảng được loại bỏ khỏi Table.PreferredWidth, CellFormat.PreferredWidth được loại bỏ 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ụ mã sau đây cho thấy cách tắt autofit và bật chiều rộng cố định cho bảng được 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 chiều 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ó chủ yếu còn sót lại từ các phiên bản trước, tuy nhiên, nó vẫn hữu ích để đơn giản hóa việc đặt chiều 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 Mô tả
AllowAutoFit được xác định Nếu AutoFit được bật:
– bảng có thể phát triển qua 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
- bất kỳ thay đổi nào đối với giá trị CellFormat.Width đều bị bỏ qua và thay vào đó ô sẽ phù hợp với nội dung của nó
PreferredWidthType với giá trị Points hoặc Percent CellFormat.Width bị bỏ qua
PreferredWidthType với 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 ô 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.

Một ví dụ về cách các tùy chọn này được áp dụng cho một bảng thực trong tài liệu có thể được nhìn thấy trong hình dưới đây.

formatting-spacing-between-cells-aspose-words-cpp

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

Các đường viền và bóng có thể được áp dụng cho toàn bộ bảng bằng cách sử dụng Table.SetBorder, Table.SetBordersTable.SetShading hoặc chỉ cho các ô cụ thể bằng cách sử dụng CellFormat.BordersCellFormat.Shading. Ngoài ra, các đườ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 dưới đây hiển thị cài đặt đường viền và bóng trong Microsoft Word và các thuộc tính tương ứng của chúng trong Aspose.Words.

formatting-border-line-aspose-words-cpp

formatting-cell-color-aspose-words-cpp

Ví dụ mã sau đây cho thấy cách định dạng bảng và ô với các đường viền và sắc thái khác nhau: