معرفی و ایجاد جداول
Aspose.Words به کاربران اجازه می دهد تا جداول را در یک سند از ابتدا ایجاد کنند و چندین روش مختلف برای انجام این کار ارائه می دهد. این مقاله جزئیاتی را در مورد نحوه افزودن جداول قالب بندی شده به سند خود با استفاده از هر روش و همچنین مقایسه هر روش در پایان مقاله ارائه می دهد.
سبک های جدول پیش فرض
به جدول جدید ایجاد شده مقادیر پیش فرض مشابه آنچه در Microsoft Word استفاده می شود داده می شود:
خواص جدول | پیش فرض در 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 |
یک جدول می تواند به صورت درون خطی باشد اگر در موقعیت محکمی قرار گرفته باشد، یا اگر بتوان آن را در هر نقطه ای از صفحه قرار داد، می تواند شناور باشد. به طور پیش فرض، Aspose.Words همیشه جداول درون خطی ایجاد می کند.
|
با DocumentBuilder یک جدول ایجاد کنید
در Aspose.Words، کاربران می توانند با استفاده از DocumentBuilder یک جدول در یک سند ایجاد کنند. الگوریتم اصلی برای ایجاد جدول به شرح زیر است:
- جدول را با StartTable شروع کنید
- با استفاده از InsertCell یک سلول به جدول اضافه کنید - این به طور خودکار یک ردیف جدید را شروع می کند
- در صورت تمایل، از ویژگی CellFormat برای تعیین قالب بندی سلول استفاده کنید
- محتوای سلول را با استفاده از روش های DocumentBuilder مناسب مانند Writeln، InsertImage و غیره وارد کنید
- مراحل 2-4 را تکرار کنید تا ردیف کامل شود
- برای پایان دادن به ردیف فعلی با EndRow تماس بگیرید
- در صورت تمایل، از ویژگی RowFormat برای تعیین قالب بندی ردیف استفاده کنید
- مراحل 2-7 را تکرار کنید تا جدول کامل شود
- برای تکمیل ساخت جدول با EndTable تماس بگیرید
جزئیات مهم:
- StartTable را می توان در داخل یک سلول نیز فراخوانی کرد که در این صورت شروع به ایجاد یک جدول تودرتو در داخل سلول می کند.
- پس از فراخوانی InsertCell، یک سلول جدید ایجاد می شود و هر محتوایی که با استفاده از روش های دیگر کلاس DocumentBuilder اضافه کنید، به سلول فعلی اضافه می شود. برای ایجاد یک سلول جدید در همان ردیف، دوباره InsertCell را فراخوانی کنید.
- اگر InsertCell بلافاصله بعد از EndRow و انتهای یک سطر فراخوانی شود، جدول در یک ردیف جدید ادامه می یابد.
- روش EndTable برای پایان دادن به جدول فقط باید یک بار پس از فراخوانی EndRow فراخوانی شود. فراخوانی EndTable مکان نما را از سلول فعلی به موقعیت بلافاصله بعد از جدول منتقل می کند.
روند ایجاد جدول به وضوح در تصویر زیر قابل مشاهده است:
مثال کد زیر نحوه ایجاد یک جدول ساده با استفاده از DocumentBuilder با قالب بندی پیش فرض را نشان می دهد:
مثال کد زیر نحوه ایجاد یک جدول فرمت شده با استفاده از DocumentBuilder را نشان می دهد:
مثال کد زیر نحوه درج یک جدول تودرتو با استفاده از DocumentBuilder را نشان می دهد:
ایجاد جدول از طریق DOM (Document Object Model)
می توانید با افزودن یک گره Table جدید در یک موقعیت خاص، جداول را مستقیماً در DOM وارد کنید.
لطفاً توجه داشته باشید که بلافاصله پس از ایجاد گره جدول، خود جدول کاملاً خالی خواهد بود، یعنی هنوز دارای ردیف و سلول نیست. برای درج ردیف ها و سلول ها در جدول، گره های فرزند مناسب Row و Cell را به DOM اضافه کنید.
مثال کد زیر نحوه ساخت یک جدول جدید را از ابتدا با افزودن گره های فرزند مناسب به درخت سند نشان می دهد:
##Create یک جدول از HTML
Aspose.Words از درج محتوا در یک سند از منبع HTML با استفاده از روش InsertHtml پشتیبانی می کند. ورودی می تواند یک صفحه کامل HTML یا فقط یک قطعه جزئی باشد.
با استفاده از روش InsertHtml، کاربران می توانند جداول را از طریق برچسب های جدول مانند <table>
، <tr>
، <td>
در سند وارد کنند.
مثال کد زیر نشان می دهد که چگونه می توان یک جدول را از یک رشته حاوی تگ های HTML در یک سند وارد کرد:
یک کپی از یک جدول موجود درج کنید
اغلب مواقعی وجود دارد که شما نیاز به ایجاد یک جدول بر اساس جدول موجود در یک سند دارید. ساده ترین راه برای کپی کردن یک جدول با حفظ تمام قالب بندی، شبیه سازی گره جدول با استفاده از روش Clone است.
از همین تکنیک می توان برای افزودن کپی از یک ردیف یا سلول موجود به جدول استفاده کرد.
مثال کد زیر نحوه کپی کردن یک جدول با استفاده از سازنده گره را نشان می دهد:
مثال کد زیر نحوه کلون کردن آخرین ردیف جدول و الحاق آن به جدول را نشان می دهد:
اگر به دنبال ایجاد جداول در یک سند هستید که با هر رکورد از منبع داده شما به صورت پویا رشد می کند، روش فوق توصیه نمی شود. درعوض، خروجی مورد نظر با استفاده از Mail merge با مناطق راحتتر به دست میآید.
مقایسه روش های ایجاد جدول
Aspose.Words چندین روش برای ایجاد جداول جدید در یک سند ارائه می دهد. هر روش مزایا و معایب خاص خود را دارد، بنابراین انتخاب هر کدام از آنها اغلب به موقعیت خاص بستگی دارد.
بیایید نگاهی دقیق تر به این روش های ایجاد جداول بیندازیم و مزایا و معایب آنها را با هم مقایسه کنیم:
روش | مزایای | معایب |
---|---|---|
از طریق DocumentBuilder | روش استاندارد برای درج جداول و سایر محتوای اسناد | گاهی اوقات ایجاد انواع مختلف جداول به طور همزمان با یک نمونه سازنده دشوار است |
از طریق DOM | با کدهای اطراف که بدون استفاده از DocumentBuilder گرهها را مستقیماً در DOM ایجاد و وارد میکنند، بهتر سازگاری دارد | جدول “خالی” ایجاد می شود: قبل از انجام بیشتر عملیات، باید با EnsureMinimum تماس بگیرید تا گره های فرزند گم شده ایجاد شوند |
از HTML | می تواند یک جدول جدید از منبع HTML با استفاده از برچسب هایی مانند <table> ، <tr> ، <td> ایجاد کند |
همه فرمت های ممکن جدول Microsoft Word را نمی توان در HTML اعمال کرد |
شبیه سازی جدول موجود | شما می توانید یک کپی از یک جدول موجود ایجاد کنید و در عین حال تمام قالب بندی ردیف ها و سلول ها را حفظ کنید | قبل از آماده شدن جدول برای استفاده، گره های فرزند مناسب باید حذف شوند |