اعمال قالب بندی
هر عنصر از یک جدول را می توان با قالب بندی های مختلف اعمال کرد. برای مثال، قالببندی جدول برای کل جدول، قالببندی ردیف فقط برای ردیفهای خاص، قالببندی سلول فقط برای سلولهای خاص اعمال میشود.
Aspose.Words یک API غنی برای بازیابی و اعمال قالب بندی در جدول ارائه می دهد. می توانید از گره های Table، RowFormat و CellFormat برای تنظیم قالب بندی استفاده کنید.
در این مقاله، در مورد نحوه اعمال قالب بندی در گره های مختلف جدول و اینکه Aspose.Words از چه تنظیمات قالب بندی جدول پشتیبانی می کند صحبت خواهیم کرد.
قالب بندی را در گره های مختلف اعمال کنید
در این بخش به اعمال قالب بندی در گره های مختلف جدول می پردازیم.
قالب بندی سطح جدول
برای اعمال قالب بندی در جدول، می توانید از ویژگی های موجود در گره Table مربوطه با استفاده از کلاس های Table، PreferredWidth و TableCollection استفاده کنید.
تصاویر زیر نمایشی از ویژگی های قالب بندی Table در Microsoft Word و ویژگی های مربوط به آنها در Aspose.Words را نشان می دهد.
مثال کد زیر نحوه اعمال حاشیه طرح کلی را به جدول نشان می دهد:
مثال کد زیر نشان می دهد که چگونه می توان یک جدول با تمام حاشیه های فعال (شبکه) ساخت:
قالب بندی سطح ردیف
قالب بندی سطح ردیف را می توان با استفاده از کلاس های Row، RowFormat و RowCollection کنترل کرد.
تصاویر زیر نمایشی از ویژگی های قالب بندی Row در Microsoft Word و ویژگی های مربوط به آنها در Aspose.Words را نشان می دهد.
مثال کد زیر نحوه تغییر قالب بندی ردیف جدول را نشان می دهد:
قالب بندی سطح سلول
قالببندی در سطح سلول توسط کلاسهای Cell، CellFormat و CellCollection کنترل میشود.
توجه داشته باشید که یک Cell فقط می تواند یک گره فرزند Row باشد. در عین حال، باید حداقل یک Paragraph در Cell وجود داشته باشد تا بتوان قالب بندی را روی آن اعمال کرد.
علاوه بر Paragraph، می توانید یک Table را نیز در Cell وارد کنید.
تصاویر زیر نمایشی از ویژگی های قالب بندی Cell در Microsoft Word و ویژگی های مربوط به آنها در Aspose.Words را نشان می دهد.
مثال کد زیر نحوه تغییر قالب بندی سلول جدول را نشان می دهد:
مثال کد زیر نحوه تنظیم مقدار فضا (بر حسب امتیاز) برای افزودن به سمت چپ/بالا/راست/پایین محتویات سلول را نشان می دهد:
ارتفاع ردیف را مشخص کنید
ساده ترین راه برای تنظیم ارتفاع ردیف استفاده از DocumentBuilder است. با استفاده از ویژگیهای RowFormat مناسب، میتوانید تنظیمات ارتفاع پیشفرض را تنظیم کنید یا ارتفاع متفاوتی را برای هر ردیف در جدول اعمال کنید.
در Aspose.Words، ارتفاع ردیف جدول توسط:
- ویژگی ارتفاع ردیف - Height
- ویژگی قاعده ارتفاع برای ردیف داده شده - HeightRule
در همان زمان، ارتفاع متفاوتی را می توان برای هر ردیف تنظیم کرد - این به شما امکان می دهد تنظیمات جدول را به طور گسترده کنترل کنید.
مثال کد زیر نحوه ایجاد جدولی حاوی یک سلول و اعمال قالب بندی ردیف را نشان می دهد:
تعیین پهنای جدول و سلول
یک جدول در یک سند Microsoft Word چندین روش مختلف برای تغییر اندازه جدول و سلول های جداگانه ارائه می دهد. این ویژگی ها امکان کنترل قابل توجهی بر ظاهر و رفتار جدول را فراهم می کند، به طوری که Aspose.Words از رفتار جداول مانند Microsoft Word پشتیبانی می کند.
دانستن این نکته مهم است که عناصر جدول دارای چندین ویژگی مختلف هستند که می توانند بر نحوه محاسبه عرض جدول کلی و همچنین سلول های جداگانه تأثیر بگذارند:
- عرض ترجیحی روی میز
- عرض ترجیحی در سلول های جداگانه
- امکان تنظیم خودکار روی میز
این مقاله نحوه کارکرد خواص مختلف محاسبه عرض جدول و نحوه کنترل کامل محاسبه عرض جدول را توضیح می دهد. این هست به ویژه در مواردی که طرح جدول آنطور که انتظار می رود ظاهر نمی شود، مفید است.
در بیشتر موارد، سلول ترجیحی نسبت به عرض جدول توصیه می شود. عرض سلول ترجیحی بیشتر مطابق با مشخصات فرمت DOCX و همچنین مدل Aspose.Words است.
عرض سلول در واقع یک مقدار محاسبه شده برای فرمت DOCX است. عرض سلول واقعی می تواند به چیزهای زیادی بستگی داشته باشد. برای مثال، تغییر حاشیههای صفحه یا عرض جدول ترجیحی میتواند بر عرض واقعی سلول تأثیر بگذارد.
عرض سلول ترجیحی یک ویژگی سلولی است که در سند ذخیره می شود. وقتی جدول یا سایر خصوصیات سلول را تغییر می دهید به هیچ چیز بستگی ندارد و تغییر نمی کند.
نحوه استفاده از عرض ترجیحی
عرض مورد نظر یک جدول یا سلول های منفرد از طریق ویژگی عرض ترجیحی تعریف می شود، که اندازه ای است که یک عنصر تلاش می کند متناسب باشد. یعنی عرض ترجیحی را می توان برای کل جدول یا برای سلول های جداگانه مشخص کرد. در برخی شرایط ممکن است این عرض دقیقاً مطابقت نداشته باشد، اما عرض واقعی در بیشتر موارد به این مقدار نزدیک خواهد بود.
نوع و مقدار عرض ترجیحی مناسب با استفاده از روش های کلاس PreferredWidth تنظیم می شود:
- روش Auto برای تعیین خودکار یا “بدون عرض ترجیحی”
- روش FromPercent برای تعیین عرض درصد
- روش FromPoints برای تعیین عرض در نقاط
تصاویر زیر نمایشی از ویژگی های تنظیم عرض ترجیحی در Microsoft Word و ویژگی های مربوط به آنها در Aspose.Words را نشان می دهد.
نمونه ای از نحوه اعمال این گزینه ها بر روی یک جدول واقعی در یک سند را می توانید در تصویر زیر مشاهده کنید.
جدول ترجیحی یا عرض سلول را مشخص کنید
در Aspose.Words، پهنای جدول و سلول با استفاده از ویژگی Table.PreferredWidth و ویژگی CellFormat.PreferredWidth، با گزینههای موجود در شمارش PreferredWidthType تنظیم میشود:
- Auto، که معادل بدون مجموعه عرض ترجیحی است
- Percent، که با عنصر نسبت به فضای موجود در اندازه پنجره یا ظرف متناسب است و زمانی که عرض موجود تغییر می کند مقدار را دوباره محاسبه می کند
- Points، که مربوط به عنصری با عرض مشخص شده در نقاط است
با استفاده از ویژگی Table.PreferredWidth عرض مورد نظر آن را نسبت به ظرف آن تنظیم می کند: صفحه، ستون متن یا سلول جدول بیرونی اگر یک جدول تودرتو باشد.
مثال کد زیر نشان می دهد که چگونه جدول را به صورت خودکار بر روی 50٪ عرض صفحه تنظیم کنید:
استفاده از ویژگی CellFormat.PreferredWidth در یک سلول معین، عرض مورد نظر آن را تنظیم می کند.
مثال کد زیر نحوه تنظیم تنظیمات عرض ترجیحی مختلف را نشان می دهد:
یافتن نوع و مقدار عرض ترجیحی
می توانید از ویژگی های Type و Value برای یافتن جزئیات عرض ترجیحی جدول یا سلول مورد نظر استفاده کنید.
مثال کد زیر نحوه بازیابی نوع عرض ترجیحی یک سلول جدول را نشان می دهد:
نحوه تنظیم Autofit
ویژگی AllowAutoFit به سلولهای جدول اجازه میدهد تا طبق معیار انتخاب شده رشد و کوچک شوند. به عنوان مثال، میتوانید از گزینه تنظیم خودکار در پنجره برای تناسب جدول با عرض صفحه و از گزینه تنظیم خودکار به محتوا استفاده کنید تا به هر سلول اجازه دهید تا بر اساس محتوای خود رشد یا کوچک شود.
به طور پیش فرض، Aspose.Words یک جدول جدید با استفاده از تنظیم خودکار در پنجره درج می کند. اندازه جدول با توجه به عرض صفحه موجود خواهد بود. برای تغییر اندازه جدول، می توانید متد AutoFit را فراخوانی کنید. این روش یک شمارش AutoFitBehavior را می پذیرد که مشخص می کند چه نوع تناسب خودکار روی جدول اعمال می شود.
لازم است بدانید که روش autofit در واقع میانبری است که خصوصیات مختلفی را به طور همزمان به جدول اعمال می کند. اینها ویژگی هایی هستند که در واقع رفتار مشاهده شده را به جدول می دهند. ما در مورد این ویژگی ها برای هر گزینه autofit بحث خواهیم کرد.
مثال کد زیر نحوه تنظیم جدولی را برای کوچک کردن یا رشد هر سلول با توجه به محتوای آن نشان می دهد:
تنظیم خودکار جدول به پنجره
هنگامی که برازش خودکار به یک پنجره روی یک جدول اعمال می شود، عملیات زیر در واقع در پشت صحنه انجام می شود:
- ویژگی Table.AllowAutoFit با استفاده از مقدار Table.PreferredWidth 100% برای تغییر اندازه خودکار ستونها برای تناسب با محتوای موجود فعال است
- CellFormat.PreferredWidth از تمام سلول های جدول حذف می شود
توجه داشته باشید که این کمی با رفتار Microsoft Word متفاوت است، جایی که عرض ترجیحی هر سلول بر اساس اندازه و محتوای فعلی آنها به مقادیر مناسب تنظیم می شود. Aspose.Words عرض ترجیحی را به روز نمی کند، بنابراین فقط در عوض پاک می شوند.
- عرض ستون برای محتوای جدول فعلی دوباره محاسبه می شود - نتیجه نهایی جدولی است که کل عرض موجود را اشغال می کند
- با ویرایش متن توسط کاربر، عرض ستون های جدول به طور خودکار تغییر می کند
مثال کد زیر نشان می دهد که چگونه یک جدول را به صورت خودکار در عرض صفحه تنظیم کنید:
تنظیم خودکار جدول به محتوا
هنگامی که جدول به صورت خودکار محتوا را برازش می کند، مراحل زیر در واقع در پشت صحنه انجام می شود:
-
ویژگی Table.AllowAutoFit برای تغییر اندازه خودکار هر سلول با توجه به محتوای آن فعال است
-
عرض جدول ترجیحی از Table.PreferredWidth حذف می شود، CellFormat.PreferredWidth برای هر سلول جدول حذف می شود
توجه داشته باشید که این گزینه autofit پهنای ترجیحی را از سلول ها حذف می کند، درست مانند Microsoft Word. اگر میخواهید اندازه ستونها را حفظ کنید و ستونها را برای تناسب با محتوا کم یا زیاد کنید، باید ویژگی Table.AllowAutoFit را به جای استفاده از میانبر autofit روی True تنظیم کنید. -
عرض ستون ها برای محتوای جدول فعلی مجدداً محاسبه می شود - نتیجه نهایی جدولی است که در آن پهنای ستون ها و عرض کل جدول به طور خودکار تغییر اندازه داده می شود تا وقتی کاربر متن را ویرایش می کند، به بهترین شکل با محتوا مطابقت داشته باشد
مثال کد زیر نحوه تطبیق خودکار یک جدول با محتوای آن را نشان می دهد:
AutoFit را در جدول غیرفعال کنید و از عرض ستون های ثابت استفاده کنید
اگر جدولی دارای Autofit غیرفعال شده باشد و به جای آن از عرض ستون ثابت استفاده شود، مراحل زیر انجام می شود:
- ویژگی Table.AllowAutoFit غیرفعال است بنابراین ستونها رشد نمیکنند یا به محتوای خود کوچک نمیشوند
- عرض ترجیحی کل جدول از Table.PreferredWidth حذف می شود، CellFormat.PreferredWidth از تمام سلول های جدول حذف می شود
- نتیجه نهایی جدولی است که عرض ستون های آن توسط ویژگی CellFormat.Width تعیین می شود و اندازه ستون های آن به طور خودکار زمانی که کاربر متن را وارد می کند یا اندازه صفحه تغییر می کند تغییر نمی کند
مثال کد زیر نحوه غیرفعال کردن autofit و فعال کردن عرض ثابت برای جدول مشخص شده را نشان می دهد:
ترتیب تقدم هنگام محاسبه عرض سلول
Aspose.Words به کاربران این امکان را می دهد که عرض یک جدول یا سلول را از طریق چندین شیء، از جمله CellFormat تعریف کنند - ویژگی Width آن بیشتر از نسخه های قبلی باقی مانده است، با این حال، هنوز برای ساده کردن تنظیم عرض سلول مفید است.
مهم است بدانید که ویژگی CellFormat.Width بسته به اینکه کدام یک از ویژگی های عرض دیگر در جدول وجود دارد، متفاوت عمل می کند.
Aspose.Words از ترتیب زیر برای محاسبه عرض سلول استفاده می کند:
سفارش | ویژگی | شرح |
---|---|---|
1 | AllowAutoFit تعیین می شود | اگر AutoFit فعال باشد: - جدول ممکن است از عرض ترجیحی برای تطبیق با محتوا گذشته باشد - معمولاً کمتر از عرض ترجیحی کوچک نمی شود - هر تغییری در مقدار CellFormat.Width نادیده گرفته می شود و سلول به جای آن با محتوای آن مطابقت می یابد |
2 | PreferredWidthType با مقدار Points یا Percent | CellFormat.Width نادیده گرفته می شود |
3 | PreferredWidthType با مقدار Auto | مقدار CellFormat.Width کپی میشود و به عرض ترجیحی سلول تبدیل میشود (به واحد) |
فاصله بین سلول ها را مجاز کنید
شما می توانید هر فضای اضافی را بین سلول های جدول مشابه گزینه “Сell spacing” در Microsoft Word دریافت یا تنظیم کنید. این کار را می توان با استفاده از ویژگی AllowCellSpacing انجام داد.
نمونه ای از نحوه اعمال این گزینه ها بر روی یک جدول واقعی در یک سند را می توانید در تصویر زیر مشاهده کنید.
مثال کد زیر نحوه تنظیم فاصله بین سلول ها را نشان می دهد:
اعمال حاشیه و سایه
حاشیهها و سایهزنی را میتوان برای کل جدول با استفاده از Table.SetBorder، Table.SetBorders و Table.SetShading یا فقط برای سلولهای خاص با استفاده از CellFormat.Borders و CellFormat.Shading اعمال کرد. علاوه بر این، مرزهای ردیف را می توان با استفاده از RowFormat.Borders تنظیم کرد، اما سایه را نمی توان به این روش اعمال کرد.
تصاویر زیر تنظیمات حاشیه و سایه در Microsoft Word و خصوصیات مربوط به آنها را در Aspose.Words نشان می دهد.
مثال کد زیر نحوه قالب بندی جدول و سلول با حاشیه ها و سایه های مختلف را نشان می دهد: