ادغام سلول های جدول
گاهی اوقات ردیف های خاصی در یک جدول نیاز به عنوان یا بلوک های بزرگ متن دارند که تمام عرض جدول را اشغال می کند. برای طراحی مناسب جدول، کاربر می تواند چندین خانه جدول را در یک ادغام کند. Aspose.Words از سلول های ادغام شده هنگام کار با همه فرمت های ورودی، از جمله وارد کردن محتوای HTML پشتیبانی می کند.
نحوه ادغام سلول های جدول
در Aspose.Words، سلول های ادغام شده با ویژگی های زیر از کلاس CellFormat نشان داده می شوند:
- HorizontalMerge که توضیح می دهد که آیا سلول بخشی از ادغام افقی سلول ها است
- VerticalMerge که توضیح می دهد که آیا سلول بخشی از ادغام عمودی سلول ها است
مقادیر این ویژگی ها رفتار ادغام سلول ها را تعیین می کند:
- اولین سلول در دنباله ای از سلول های ادغام شده دارای CellMerge.First خواهد بود
- هر سلول ادغام شده بعدی دارای CellMerge.Previous خواهد بود
- سلولی که ادغام نشده باشد دارای CellMerge.None خواهد بود
بررسی کنید که سلول ادغام شده است یا خیر
برای بررسی اینکه آیا یک سلول بخشی از دنباله ای از سلول های ادغام شده است، ما به سادگی ویژگی های HorizontalMerge و VerticalMerge را بررسی می کنیم.
مثال کد زیر نحوه چاپ نوع ادغام سلول های افقی و عمودی را نشان می دهد:
ادغام سلول های جدول هنگام استفاده از DocumentBuilder
برای ادغام سلولها در جدولی که با DocumentBuilder ایجاد شده است، باید نوع ادغام مناسب را برای هر سلولی که انتظار ادغام وجود دارد تنظیم کنید - ابتدا CellMerge.First و سپس CellMerge.Previous.
همچنین، باید به خاطر داشته باشید که تنظیمات ادغام را برای آن دسته از سلولهایی که نیازی به ادغام ندارند پاک کنید - این کار را میتوان با تنظیم اولین سلول غیرادغامشده روی CellMerge.None انجام داد. اگر این کار انجام نشود، تمام سلول های جدول ادغام می شوند.
مثال کد زیر نحوه ایجاد یک جدول با دو ردیف را نشان می دهد که در آن سلول های ردیف اول به صورت افقی ادغام می شوند:
مثال کد زیر نحوه ایجاد یک جدول دو ستونی را نشان می دهد که در آن سلول های ستون اول به صورت عمودی ادغام می شوند:
ادغام سلول های جدول در موارد دیگر
در موقعیتهای دیگری که از DocumentBuilder استفاده نمیشود، مانند جدول موجود، ادغام سلولها به روش قبلی ممکن است به آسانی نباشد. درعوض، میتوانیم عملیات اساسی مربوط به اعمال ویژگیهای ادغام در سلولها را به روشی بپیچیم که کار را بسیار آسانتر کند. این روش شبیه به روش اتوماسیون Merge است که برای ادغام محدوده ای از سلول ها در یک جدول نامیده می شود.
کد زیر سلول های جدول را در محدوده مشخص شده ادغام می کند که از سلول داده شده شروع می شود و به سلول انتهایی ختم می شود. در این مورد، محدوده می تواند چندین ردیف یا ستون را در بر بگیرد:
مثال کد زیر نحوه ادغام محدوده ای از سلول ها را بین دو سلول مشخص نشان می دهد:
بسته به نسخه چارچوبی که استفاده میکنید، ممکن است بخواهید این روش را با تبدیل آن به یک متد افزونه اصلاح کنید. در این حالت می توانید این روش را مستقیماً روی یک سلول فراخوانی کنید تا محدوده ای از سلول ها مانند cell1.Merge(cell2)
را ادغام کنید.
تبدیل به سلول های ادغام شده افقی
گاهی اوقات نمیتوان تشخیص داد کدام سلولها ادغام شدهاند، زیرا برخی از نسخههای جدیدتر Microsoft Word وقتی سلولها به صورت افقی ادغام میشوند، دیگر از پرچمهای ادغام استفاده نمیکنند. اما برای موقعیتهایی که سلولها با استفاده از پرچمهای ادغام به صورت افقی در یک سلول ادغام میشوند، Aspose.Words روش ConvertToHorizontallyMergedCells
را برای تبدیل سلولها ارائه میکند. این روش به سادگی جدول را تبدیل می کند و سلول های جدید را در صورت نیاز اضافه می کند.
مثال کد زیر روش فوق را در حال اجرا نشان می دهد: