اسناد MS Word به طور گسترده ای برای نگهداری و به اشتراک گذاری اطلاعات استفاده می شود. در برخی موارد، ممکن است لازم باشد دادهها را از یک سند Word که میتواند در بخشها یا صفحات مختلف قرار گیرد، تقسیم کنید. همچنین، ممکن است لازم باشد صفحات یک سند را به چندین سند تقسیم کنید. مطابق با چنین سناریوهایی، این مقاله قصد دارد به شما نشان دهد که چگونه اسناد MS Word را به صورت برنامهنویسی با استفاده از C# تقسیم کنید.
- C# API برای تقسیم اسناد MS Word
- تقسیم اسناد Word بر اساس بخش با استفاده از C#
- تقسیم اسناد Word صفحه به صفحه با استفاده از C#
- استفاده از محدوده صفحه برای تقسیم اسناد Word با استفاده از C#
C# API برای تقسیم اسناد MS Word
Aspose.Words for .NET یک API پردازش کلمه قدرتمند است که به شما امکان می دهد اسناد MS Word را با استفاده از C# یا VB.NET ایجاد و دستکاری کنید. علاوه بر این، به شما امکان می دهد اسناد MS Word را بر اساس بخش، صفحه یا محدوده صفحه تقسیم کنید. می توانید API را دانلود یا با استفاده از NuGet در برنامه خود نصب کنید.
PM> Install-Package Aspose.Words
تقسیم اسناد Word بر اساس بخش با استفاده از C#
بخشها به بخشهایی از یک سند اشاره میکنند که در آن قالببندیهای متفاوتی میتواند اعمال شود. یک بخش ممکن است از یک صفحه، طیف وسیعی از صفحات یا کل سند تشکیل شده باشد. شکستن بخش برای تقسیم یک سند به چند بخش استفاده می شود. در زیر مراحل تقسیم یک سند Word بر اساس بخش های آن با استفاده از Aspose.Words برای دات نت آمده است.
- سند Word را با استفاده از کلاس Document بارگیری کنید.
- با استفاده از ویژگی Document.Sections در بخش های صفحه حلقه بزنید.
- بخش را در یک شیء جدید Section کلون کنید.
- یک شیء Document جدید ایجاد کنید.
- بخش را با استفاده از روش Document.Sections.Add(Section) به Document جدید اضافه کنید.
- اسناد را با استفاده از روش Document.Save(String) ذخیره کنید.
نمونه کد زیر نحوه تقسیم اسناد MS Word را بر اساس بخش ها با استفاده از C# نشان می دهد.
// یک سند Word را باز کنید
Document doc = new Document("document.docx");
for (int i = 0; i < doc.Sections.Count; i++)
{
// یک سند را به بخش های کوچکتر تقسیم کنید، در این مثال به بخش تقسیم کنید
Section section = doc.Sections[i].Clone();
// یک سند جدید ایجاد کنید
Document newDoc = new Document();
newDoc.Sections.Clear();
Section newSection = (Section)newDoc.ImportNode(section, true);
newDoc.Sections.Add(newSection);
// هر بخش را به عنوان یک سند جداگانه ذخیره کنید
newDoc.Save($"splitted_{i}.docx");
}
تقسیم اسناد Word صفحه به صفحه با استفاده از C#
ممکن است موردی وجود داشته باشد که یک سند Word حاوی نوع مشابهی از اطلاعات در هر صفحه مانند فاکتورها یا رسیدها باشد. در چنین حالتی، می توانید صفحات سند را تقسیم کنید تا هر فاکتور به عنوان یک سند جداگانه ذخیره شود. برای تقسیم اسناد صفحه به صفحه، می توانید از کلاس کمکی DocumentPageSplitter بر اساس Aspose.Words برای دات نت استفاده کنید. شما به سادگی می توانید کلاس را در پروژه خود کپی کنید و با دنبال کردن مراحل زیر، اسناد Word را صفحه به صفحه تقسیم کنید.
- سند Word را با استفاده از کلاس Document بارگیری کنید.
- یک شی از کلاس DocumentPageSplitter ایجاد کنید و آن را با شی Document مقداردهی اولیه کنید.
- از طریق صفحات سند تکرار کنید.
- با استفاده از روش DocumentPageSplitter.GetDocumentOfPage(int PageIndex) هر صفحه را در یک شی Document جدید استخراج کنید.
- هر سند را با استفاده از روش Document.Save(String) ذخیره کنید.
نمونه کد زیر نحوه تقسیم سند Word را بر اساس صفحات با استفاده از C# نشان می دهد.
// یک سند Word را باز کنید
Document doc = new Document("Document.docx");
// تقسیم کننده صفحه سند را ایجاد و مقداردهی اولیه کنید
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);
// هر صفحه را به عنوان یک سند جداگانه ذخیره کنید
for (int page = 1; page <= doc.PageCount; page++)
{
Document pageDoc = splitter.GetDocumentOfPage(page);
pageDoc.Save($"spliteed_{page}.docx");
}
تقسیم اسناد Word بر اساس محدوده صفحه با استفاده از C#
همچنین می توانید محدوده صفحه ای را برای جدا کردن آن از سند اصلی با استفاده از کلاس DocumentPageSplitter تعیین کنید. به عنوان مثال، اگر می خواهید صفحات را از 2 به 4 تقسیم کنید، کافی است فهرست شروع و پایان صفحه را در روش DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex, int EndIndex) مشخص کنید.
نمونه کد زیر نحوه تقسیم یک محدوده صفحه از سند Word را با استفاده از C# نشان می دهد.
// یک سند Word را باز کنید
Document doc = new Document("document.docx");
// ایجاد و مقداردهی اولیه تقسیم کننده صفحه سند
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);
// محدوده صفحه را دریافت کنید
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx");
نتیجه
در این مقاله یاد گرفتید که چگونه اسناد MS Word را با استفاده از سی شارپ به صورت برنامه ای تقسیم کنید. سناریوهای تقسیم اسناد Word بر اساس بخش ها، صفحات و محدوده صفحه همراه با نمونه کد مورد بحث قرار گرفته است. میتوانید با استفاده از مستندات درباره Aspose.Words برای داتنت بیشتر کاوش کنید.