Giới thiệu và tạo bảng
Aspose.Words cho phép người dùng tạo bảng trong tài liệu từ đầu và cung cấp một số phương pháp khác nhau để thực hiện việc đó. Bài viết này trình bày chi tiết về cách thêm bảng được định dạng vào tài liệu của bạn bằng từng phương pháp, cũng như so sánh từng phương pháp ở cuối bài viết.
Kiểu bảng mặc định
Bảng mới tạo được cung cấp các giá trị mặc định tương tự như các giá trị được sử dụng trong Microsoft Word:
Thuộc tính bảng | Mặc định trong Aspose.Words |
---|---|
Border Style |
Single |
Border Width |
1/2 pt |
Border Color |
Black |
Left and Right Padding |
5.4 pts |
AutoFit Mode |
AutoFit to Window |
Allow AutoFit |
True |
Một bảng có thể ở dạng nội tuyến nếu nó được định vị chặt chẽ hoặc nổi nếu nó có thể được định vị ở bất kỳ đâu trên trang. Theo mặc định, Aspose.Words luôn tạo các bảng nội tuyến.
|
Tạo bảng bằng DocumentBuilder
Trong Aspose.Words, người dùng có thể tạo bảng trong tài liệu bằng DocumentBuilder. Thuật toán cơ bản để tạo bảng như sau:
- Bắt đầu bàn với StartTable
- Thêm một ô vào bảng bằng InsertCell – thao tác này sẽ tự động bắt đầu một hàng mới
- Tùy chọn, sử dụng thuộc tính CellFormat để chỉ định định dạng ô
- Chèn nội dung ô bằng các phương thức DocumentBuilder thích hợp như Writeln, InsertImage và các phương thức khác
- Lặp lại các bước 2-4 cho đến khi hoàn thành hàng
- Gọi EndRow để kết thúc hàng hiện tại
- Tùy chọn sử dụng thuộc tính RowFormat để chỉ định định dạng hàng
- Lặp lại các bước từ 2-7 cho đến khi hoàn thành bảng
- Gọi EndTable để hoàn thành việc xây dựng bảng
Chi tiết quan trọng:
- StartTable cũng có thể được gọi bên trong một ô, trong trường hợp đó nó bắt đầu tạo một bảng lồng nhau trong ô.
- Sau khi gọi InsertCell, một ô mới sẽ được tạo và mọi nội dung bạn thêm bằng các phương thức khác của lớp DocumentBuilder sẽ được thêm vào ô hiện tại. Để tạo một ô mới trên cùng một hàng, hãy gọi lại InsertCell.
- Nếu InsertCell được gọi ngay sau EndRow và kết thúc một hàng thì bảng sẽ tiếp tục ở một hàng mới.
- Phương thức EndTable để kết thúc bảng chỉ được gọi một lần sau khi gọi EndRow. Việc gọi EndTable sẽ di chuyển con trỏ từ ô hiện tại đến vị trí ngay sau bảng.
Quá trình tạo bảng có thể được thấy rõ trong hình sau:
Ví dụ mã sau đây cho thấy cách tạo một bảng đơn giản bằng DocumentBuilder với định dạng mặc định:
Ví dụ mã sau đây cho thấy cách tạo bảng được định dạng bằng DocumentBuilder:
Ví dụ mã sau đây cho thấy cách chèn bảng lồng nhau bằng DocumentBuilder:
Tạo bảng qua DOM (Document Object Model)
Bạn có thể chèn bảng trực tiếp vào DOM bằng cách thêm nút Table mới tại một vị trí cụ thể.
Xin lưu ý rằng ngay sau khi tạo nút bảng, bản thân bảng sẽ hoàn toàn trống, nghĩa là nó chưa chứa các hàng và ô. Để chèn hàng và ô vào bảng, hãy thêm các nút con Row và Cell thích hợp vào DOM.
Ví dụ mã sau đây cho thấy cách xây dựng một bảng mới từ đầu bằng cách thêm các nút con thích hợp vào cây tài liệu:
##Create một bảng từ HTML
Aspose.Words hỗ trợ chèn nội dung vào tài liệu từ nguồn HTML bằng phương pháp InsertHtml. Đầu vào có thể là một trang HTML hoàn chỉnh hoặc chỉ là một phần đoạn mã.
Sử dụng phương pháp InsertHtml, người dùng có thể chèn bảng vào tài liệu thông qua các thẻ bảng như <table>
, <tr>
, <td>
.
Ví dụ mã sau đây cho thấy cách chèn bảng vào tài liệu từ một chuỗi chứa thẻ HTML:
Chèn một bản sao của bảng hiện có
Đôi khi bạn cần tạo bảng dựa trên bảng đã có sẵn trong tài liệu. Cách dễ nhất để sao chép bảng trong khi vẫn giữ lại tất cả định dạng là sao chép nút Bảng bằng phương pháp Clone.
Kỹ thuật tương tự có thể được sử dụng để thêm bản sao của hàng hoặc ô hiện có vào bảng.
Ví dụ mã sau đây cho thấy cách sao chép một bảng bằng cách sử dụng các hàm tạo nút:
Ví dụ mã sau đây cho thấy cách sao chép hàng cuối cùng của bảng và nối nó vào bảng:
Nếu bạn đang xem xét việc tạo các bảng trong tài liệu phát triển linh hoạt với mỗi bản ghi từ nguồn dữ liệu của mình thì phương pháp trên không được khuyên dùng. Thay vào đó, bạn có thể dễ dàng đạt được kết quả mong muốn hơn bằng cách sử dụng Mail merge với các vùng.
So sánh các cách tạo bảng
Aspose.Words cung cấp một số phương pháp để tạo bảng mới trong tài liệu. Mỗi phương pháp đều có ưu điểm và nhược điểm riêng nên việc lựa chọn sử dụng phương pháp nào thường phụ thuộc vào tình huống cụ thể.
Chúng ta hãy xem xét kỹ hơn các cách tạo bảng này và so sánh ưu và nhược điểm của chúng:
Phương pháp | Thuận lợi | Nhược điểm |
---|---|---|
Thông qua DocumentBuilder | Phương pháp tiêu chuẩn để chèn bảng và nội dung tài liệu khác | Đôi khi khó tạo nhiều loại bảng cùng lúc với cùng một phiên bản trình tạo |
Qua DOM | Phù hợp hơn với mã xung quanh giúp tạo và chèn các nút trực tiếp vào DOM mà không cần sử dụng DocumentBuilder | Bảng được tạo “trống”: trước khi thực hiện hầu hết các thao tác, bạn phải gọi EnsureMinimum để tạo bất kỳ nút con nào bị thiếu |
Từ HTML | Có thể tạo bảng mới từ nguồn HTML bằng các thẻ như <table> , <tr> , <td> |
Không phải tất cả các định dạng bảng Microsoft Word đều có thể áp dụng được cho HTML |
Nhân bản một bảng hiện có | Bạn có thể tạo bản sao của bảng hiện có trong khi vẫn giữ lại tất cả định dạng hàng và ô | Các nút con thích hợp phải được loại bỏ trước khi bảng sẵn sàng để sử dụng |