جداول در یک سند Word ابزاری قدرتمند برای سازماندهی و ارائه داده ها در قالبی واضح و ساختاریافته است. یک جدول از سطرها و ستون هایی تشکیل شده است که با هم قطع می شوند و سلول هایی را تشکیل می دهند که می توانند حاوی متن، اعداد، تصاویر یا عناصر دیگر باشند. در این مقاله نحوه ایجاد جدول در اسناد ورد به صورت برنامه نویسی با استفاده از C# را آموزش خواهیم داد. این مقاله روشهای مختلفی را برای ایجاد جداول در یک فایل DOCX که توسط نمونههای کد پشتیبانی میشود، نشان میدهد.
این مقاله موضوعات زیر را پوشش می دهد:
- کتابخانه C# برای ایجاد جداول در اسناد Word
- یک جدول در یک سند Word ایجاد کنید
- یک جدول تودرتو در اسناد Word ایجاد کنید
- کلون کردن یک جدول موجود در یک سند Word
- یک جدول از HTML ایجاد کنید
کتابخانه C# برای ایجاد جداول در اسناد Word
برای کار با جداول در اسناد Word، از کتابخانه Aspose.Words for .NET استفاده می کنیم. این یک کتابخانه قوی است که شما را قادر می سازد تا به صورت پویا اسناد Word را به صورت برنامه نویسی و مستقیماً در برنامه های NET ایجاد و دستکاری کنید.
لطفاً DLL را دانلود کنید یا با استفاده از دستور زیر آن را از NuGet نصب کنید:
PM> Install-Package Aspose.Words
ایجاد جدول در سند Word در C#
دو راه برای ایجاد جداول در اسناد Word با استفاده از Aspose.Words for .NET وجود دارد:
- با استفاده از کلاس DocumentBuilder
- استفاده از DOM (مدل شیء سند)
شما می توانید بهترین روش را انتخاب کنید که با نیازهای شما مطابقت دارد. پس بیایید هر یک از این روش ها را با جزئیات بررسی کنیم.
با استفاده از DocumentBuilder یک جدول ایجاد کنید
کلاس DocumentBuilder ایجاد کارآمد و بی دردسر اسناد پویا را از ابتدا یا اصلاح اسناد موجود را امکان پذیر می کند. با طیف گسترده ای از توابع، می توانیم عناصر محتوای متنوعی از جمله متن، چک باکس، اشیاء OLE، پاراگراف ها، لیست ها، جداول، تصاویر و بسیاری موارد دیگر را به صورت یکپارچه درج کنیم.
لطفا مراحل زیر را برای ایجاد جدول در سند Word با استفاده از کلاس DocumentBuilder دنبال کنید.
- یک شی از کلاس Document ایجاد کنید.
- یک شی از کلاس DocumentBuilder ایجاد کنید.
- یک جدول جدید با استفاده از متد()StartTable ایجاد کنید.
- یک سلول را با استفاده از روش InsertCell() وارد کنید.
- با استفاده از متد Write() متن را در سلول وارد کنید.
- در صورت نیاز، درج سلول ها و متن را در سلول ها تکرار کنید.
- با استفاده از متد EndRow() یک سطر را پایان دهید.
- جدول را با استفاده از روش EndTable() پایان دهید.
- در نهایت، سند Word را با استفاده از متد Save() ذخیره کنید.
نمونه کد زیر نحوه ایجاد جدول در یک سند Word با استفاده از C# را نشان می دهد.
// این مثال کد نحوه ایجاد جدول در یک سند Word با استفاده از C# را نشان می دهد.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// شروع به ساختن میز کنید.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");
// سلول دوم را بسازید.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");
// برای پایان دادن به ردیف و شروع یک ردیف جدید، روش زیر را فراخوانی کنید.
builder.EndRow();
// اولین سلول ردیف دوم را بسازید.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");
// سلول دوم را بسازید.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();
// علامت دهید که ساخت جدول را به پایان رسانده ایم.
builder.EndTable();
doc.Save("CreateSimpleTable.docx");
ایجاد جدول با استفاده از مدل شیء سند (DOM)
Document Object Model (DOM) یک نمایش در حافظه از یک سند Word است. دسترسی برنامهای را برای خواندن، دستکاری، و تغییر محتوا و قالببندی یک سند Word را امکانپذیر میسازد.
لطفاً مراحل زیر را برای ایجاد جدول در سند Word با استفاده از DOM دنبال کنید.
- یک شی از کلاس Document ایجاد کنید.
- با استفاده از کلاس Table() یک جدول جدید ایجاد کنید.
- با استفاده از متد AppendChild() یک جدول به بدنه سند اضافه کنید.
- یک شی از کلاس Row ایجاد کنید و با استفاده از متد Table.AppendChild(Row) در جدول قرار دهید.
- یک شی از کلاس Cell ایجاد کنید، گزینه های قالب بندی را تنظیم کنید و متن را به سلول اضافه کنید.
- با استفاده از روش Row.AppendChild(Cell) سلول را در ردیف قرار دهید.
- پس از آن، روند را برای هر تعداد ردیفی که می خواهید تکرار کنید.
- در نهایت، سند Word را با استفاده از متد Save() ذخیره کنید.
نمونه کد زیر نحوه ایجاد جدول در یک سند Word با استفاده از C# را نشان می دهد.
// این مثال کد نحوه ایجاد جدول در سند Word با استفاده از DOM در C# را نشان می دهد.
Document doc = new Document();
// با ایجاد شی جدول شروع می کنیم. توجه داشته باشید که باید شی document را پاس کنیم
// به سازنده هر گره. این به این دلیل است که هر گره ای که ایجاد می کنیم باید متعلق باشد
// به یک سند
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);
// در اینجا میتوانیم EnsureMinimum را فراخوانی کنیم تا ردیفها و سلولها را برای ما ایجاد کند. این روش استفاده می شود
// تا اطمینان حاصل شود که گره مشخص شده معتبر است. در این حالت، یک جدول معتبر باید حداقل یک ردیف و یک سلول داشته باشد.
// درعوض، ما خودمان با ایجاد ردیف و جدول مدیریت خواهیم کرد.
// اگر در حال ایجاد یک جدول در داخل یک الگوریتم باشیم، این بهترین راه برای انجام این کار خواهد بود.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);
// اکنون میتوانیم تنظیمات مربوط به خودکار را اعمال کنیم.
table.AutoFit(AutoFitBehavior.FixedColumnWidths);
Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));
// یک سلول اضافه کنید
row.AppendChild(cell);
// سپس این فرآیند را برای سایر سلولها و ردیفهای جدول تکرار میکنیم.
// همچنین میتوانیم با شبیهسازی سلولها و ردیفهای موجود، سرعت کار را افزایش دهیم.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));
// سند را ذخیره کنید
doc.Save("InsertTableDirectly.docx");
ایجاد یک جدول تودرتو در یک سند Word با استفاده از C#
ما همچنین می توانیم یک جدول جدید در یک سلول از جدول ایجاد کنیم. مراحل زیر برای ایجاد یک جدول تودرتو در یک سند Word است.
- یک شی از کلاس Document ایجاد کنید.
- یک شی از کلاس DocumentBuilder ایجاد کنید.
- با استفاده از متد StartTable() یک جدول ایجاد کنید و یک مرجع به جدول در یک شیء دریافت کنید.
- یک سلول را با استفاده از روش InsertCell() وارد کنید و یک مرجع به سلول در یک شیء دریافت کنید.
- با استفاده از متد()DocumentBuilder.Write متن را در یک سلول قرار دهید.
- در صورت نیاز، درج سلول ها و متن را در سلول ها تکرار کنید.
- زمانی که تمام سطرها را وارد کردید، جدول را پایان دهید.
- با استفاده از روش MoveTo(cell.FirstParagraph) کنترل را به داخل سلول مورد نظر منتقل کنید.
- با قرار دادن سلول ها جدول دیگری ایجاد کنید و پس از اتمام جدول را پایان دهید.
- در نهایت سند Word را با استفاده از متد Save() ذخیره کنید.
نمونه کد زیر نحوه ایجاد یک جدول تودرتو در یک سند Word را با استفاده از C# نشان می دهد.
// این مثال کد نحوه ایجاد یک جدول تودرتو در یک سند Word را با استفاده از C# نشان می دهد.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Cell cell = builder.InsertCell();
builder.Writeln("Outer Table Cell 1");
builder.InsertCell();
builder.Writeln("Outer Table Cell 2");
// این فراخوانی برای ایجاد یک جدول تودرتو در اولین جدول مهم است.
// بدون این فراخوانی، سلول های درج شده در زیر به جدول بیرونی اضافه می شوند.
builder.EndTable();
// به خانه اول جدول بیرونی بروید.
builder.MoveTo(cell.FirstParagraph);
// میز داخلی را بسازید.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();
// سند را ذخیره کنید
doc.Save("NestedTable.docx");
کلون کردن یک جدول موجود در یک سند Word در C#
ما می توانیم یک جدول موجود در یک سند Word را با دنبال کردن مراحل زیر شبیه سازی کنیم:
- یک سند موجود را با یک جدول با استفاده از کلاس Document بارگیری کنید.
- جدول را در یک شی با استفاده از متد GetChild(NodeType.TABLE، int، boolean) دریافت کنید.
- با استفاده از روش Table.Clone(True) یک جدول را کلون کنید.
- یک جدول کلون شده را با استفاده از متد()Table.ParentNode.InsertAfter وارد کنید.
- با استفاده از روش Table.ParentNode.InsertAfter(new Paragraph(Document)، Table) یک پاراگراف خالی بین جداول قرار دهید.
- در نهایت، سند Word را با استفاده از متد Save() ذخیره کنید.
نمونه کد زیر نحوه کلون کردن جدول در یک سند Word را با استفاده از C# نشان می دهد.
// این مثال کد نحوه کلون کردن یک جدول موجود در یک سند Word را با استفاده از C# نشان می دهد.
Document doc = new Document("Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
// جدول را کلون کنید و بعد از نسخه اصلی در سند وارد کنید.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);
// یک پاراگراف خالی بین دو جدول درج کنید،
// در غیر این صورت، پس از ذخیره کردن، آنها را به یکی ترکیب می کنند که مربوط به اعتبار سنجی سند است.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
doc.Save("CloneCompleteTable.docx");
یک جدول در یک سند Word از HTML ایجاد کنید
ما همچنین می توانیم با دنبال کردن مراحل زیر یک جدول در یک سند Word با استفاده از یک رشته HTML ایجاد کنیم:
- یک شی از کلاس Document ایجاد کنید.
- یک شی از کلاس DocumentBuilder ایجاد کنید.
- رشته HTML جدول را با استفاده از روش DocumentBuilder.InsertHtml(String) در سند وارد کنید.
- در نهایت، سند را با استفاده از متد()Document.Save ذخیره کنید.
نمونه کد زیر نحوه درج جدول HTML را با استفاده از C# در یک سند Word نشان می دهد.
// این مثال کد نشان می دهد که چگونه می توان یک جدول HTML را با استفاده از C# در یک سند Word درج کرد.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// توجه داشته باشید که AutoFitSettings برای جداول درج شده از HTML اعمال نمی شود.
builder.InsertHtml("<table>" +
"<tr>" +
"<td>Row 1, Cell 1</td>" +
"<td>Row 1, Cell 2</td>" +
"</tr>" +
"<tr>" +
"<td>Row 2, Cell 2</td>" +
"<td>Row 2, Cell 2</td>" +
"</tr>" +
"</table>");
doc.Save("InsertTableFromHtml.docx");
مجوز API رایگان دریافت کنید
می توانید برای استفاده از Aspose.Words for .NET بدون محدودیت ارزیابی، مجوز موقت دریافت کنید.
نتیجه
در این مقاله نحوه ایجاد جداول در اسناد Word با استفاده از C# را یاد گرفتیم. ما روش های مختلفی را برای ایجاد جداول به صورت برنامه نویسی با استفاده از C# بررسی کرده ایم. ما همچنین نحوه ایجاد جداول تودرتو یا شبیه سازی جداول موجود در اسناد Word را به صورت پویا دیده ایم. علاوه بر این، میتوانید با استفاده از مستندات بیشتر بیاموزید و انواع ویژگیهای دیگر کتابخانه را کشف کنید. در صورت وجود هرگونه ابهامی، لطفاً با ما در تالار گفتمان پشتیبانی رایگان تماس بگیرید.