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