یک جدول ایجاد کنید
Aspose.Words به کاربران اجازه می دهد تا جداول را در یک سند از ابتدا ایجاد کنند و چندین روش مختلف برای انجام این کار فراهم می کند. در این مقاله توضیحاتی در مورد نحوه افزودن جداول فرمت شده به سند خود با استفاده از هر روش و همچنین مقایسه هر روش در پایان مقاله ارائه شده است.
سبک های جدول پیش فرض
جدول تازه ایجاد شده به مقادیر پیش فرض مشابه با آنهایی که در Microsoft Wordاستفاده می شود داده شده است:
ویژگی جدول | پیش فرض در Aspose.Words |
---|---|
Border Style |
Single |
Border Width |
1/2 pt |
رنگ مرزی | 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 (مدل شیء سند)
شما می توانید جداول را مستقیما به DOM با اضافه کردن یک گره Table جدید در یک موقعیت خاص وارد کنید.
لطفا توجه داشته باشید که بلافاصله پس از ایجاد گره جدول، خود جدول کاملا خالی خواهد بود، یعنی هنوز ردیف ها و سلول ها را شامل نمی شود. برای قرار دادن ردیف ها و سلول ها در یک جدول، گره های مناسب Row و Cell child را به DOM اضافه کنید.
مثال کد زیر نشان می دهد که چگونه یک جدول جدید را از ابتدا با اضافه کردن گره های مناسب کودک به درخت سند بسازید:
یک جدول از HTMLایجاد کنید
Aspose.Words از وارد کردن محتوا به یک سند از یک منبع HTML با استفاده از روش InsertHtml پشتیبانی می کند. ورودی می تواند یک صفحه کامل HTML یا فقط یک قطعه جزئی باشد.
با استفاده از این روش InsertHtml، کاربران می توانند جداول را از طریق برچسب های جدول مانند <table>
, <tr>
, <td>
.
مثال کد زیر نشان می دهد که چگونه یک جدول را از یک رشته حاوی برچسب های HTML در یک سند قرار دهید:
یک کپی از یک جدول موجود را وارد کنید
اغلب اوقات زمانی وجود دارد که شما نیاز به ایجاد یک جدول بر اساس یک جدول موجود در یک سند دارید. ساده ترین راه برای کپی کردن یک جدول در حالی که تمام قالب بندی ها را حفظ می کند، شبیه سازی گره جدول با استفاده از روش deepClone است.
همین تکنیک را می توان برای اضافه کردن نسخه های یک ردیف یا سلول موجود به یک جدول استفاده کرد.
مثال کد زیر نشان می دهد که چگونه یک جدول را با استفاده از node constructors تکرار کنیم:
مثال کد زیر نشان می دهد که چگونه آخرین ردیف یک جدول را کلان کنیم و آن را به جدول اضافه کنیم:
اگر شما به دنبال ایجاد جداول در یک سند هستید که با هر رکورد از منبع داده شما به صورت پویا رشد می کند، روش فوق توصیه نمی شود. در عوض، خروجی مورد نظر با استفاده از Mail merge با مناطق به راحتی به دست می آید. شما می توانید در مورد این تکنیک در Mail Merge با مناطق بخش.
روش های ایجاد جدول را مقایسه کنید
Aspose.Words چندین روش برای ایجاد جداول جدید در یک سند فراهم می کند. هر روش مزایا و معایب خاص خود را دارد، بنابراین انتخاب آن برای استفاده اغلب به وضعیت خاص بستگی دارد.
بیایید نگاهی دقیق تر به این روش های ایجاد جداول بیندازیم و مزایا و معایب آنها را مقایسه کنیم:
روش | مزایا | معایب |
---|---|---|
از طریق DocumentBuilder |
روش استاندارد برای قرار دادن جداول و سایر محتوای اسناد | گاهی اوقات دشوار است که انواع مختلفی از جداول را در همان زمان با همان نمونه سازنده ایجاد کنید |
از طریق DOM | با کد اطراف که گره ها را مستقیما به DOM بدون استفاده از DocumentBuilderایجاد و وارد می کند، بهتر مطابقت دارد | جدول “خالی” ایجاد شده است: قبل از انجام بیشتر عملیات، باید با EnsureMinimum تماس بگیرید تا هر گره کودک گمشده ای ایجاد کنید |
از HTML | می تواند یک جدول جدید از منبع HTML با استفاده از برچسب هایی مانند <table> , <tr> , <td> |
همه فرمت های جدول Microsoft Word را نمی توان به HTMLاعمال کرد |
شبیه سازی یک جدول موجود | شما می توانید یک کپی از یک جدول موجود را ایجاد کنید در حالی که تمام ردیف ها و قالب بندی سلول را حفظ می کنید | گره های مناسب کودک باید قبل از آماده شدن جدول برای استفاده برداشته شوند |