ایجاد جداول در اسناد word با استفاده از جاوا

مایکروسافت ورد یک برنامه پردازش کلمه محبوب است که برای ایجاد انواع مختلف اسناد استفاده می شود. این اسناد ممکن است شامل چندین نوع عنصر از جمله متن، تصاویر، جداول و نمودارها باشد. وقتی صحبت از ایجاد و دستکاری خودکار اسناد در جاوا می شود، ممکن است به یک راه حل بدون دردسر برای ایجاد جداول در اسناد Word نیاز داشته باشید. بنابراین در این پست وبلاگ، نحوه ایجاد جداول در اسناد Word در یک برنامه جاوا را بررسی خواهیم کرد.

کتابخانه جاوا برای ایجاد جداول در اسناد Word

Aspose.Words for Java یک API است که به توسعه دهندگان جاوا اجازه می دهد تا با اسناد Microsoft Word به صورت برنامه نویسی کار کنند. طیف وسیعی از ویژگی‌ها را برای ایجاد، اصلاح و دستکاری اسناد Word ارائه می‌کند و آن را به ابزاری ارزشمند برای خودکارسازی کارهای تولید و پردازش اسناد تبدیل می‌کند. ما از این کتابخانه برای درج جداول در سند Word استفاده خواهیم کرد.

می‌توانید کتابخانه را دانلود یا با استفاده از تنظیمات Maven زیر نصب کنید.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>23.10</version>
    <classifier>jdk17</classifier>
</dependency>

ایجاد یک جدول در یک سند Word در جاوا

دو راه برای ایجاد جداول در اسناد Word با استفاده از Aspose.Words برای جاوا وجود دارد:

  • با استفاده از DocumentBuilder
  • استفاده از DOM (مدل شیء سند)

شما می توانید بهترین روش را انتخاب کنید که با نیازهای شما مطابقت دارد. بنابراین اجازه دهید هر یک از این روش ها را با جزئیات بررسی کنیم.

ایجاد جدول با استفاده از DocumentBuilder

کلاس DocumentBuilder راهی سریع و آسان برای ایجاد اسناد پویا از ابتدا یا پردازش اسناد موجود در اختیار شما قرار می دهد. طیف وسیعی از عملکردها را برای درج عناصر محتوای مختلف مانند متن، چک باکس، اشیاء OLE، پاراگراف ها، لیست ها، جداول، تصاویر و موارد دیگر ارائه می دهد.

در زیر مراحلی که از کلاس DocumentBuilder برای ایجاد جدول در یک سند Word در جاوا استفاده می شود، آمده است.

  • یک شی از کلاس Document برای بارگذاری یا ایجاد سند Word ایجاد کنید.
  • یک شی از کلاس DocumentBuilder ایجاد کنید.
  • یک جدول را با استفاده از متد ()DocumentBuilder.startTable شروع کنید.
  • یک سلول را با استفاده از روش DocumentBuilder.insertCell () درج کنید.
  • (اختیاری) قالب بندی را روی سلول اعمال کنید، مانند فونت و تراز.
  • با استفاده از متد ()DocumentBuilder.write متن را در سلول وارد کنید.
  • در صورت نیاز، درج سلول ها و متن را در سلول ها تکرار کنید.
  • هنگامی که درج سلول ها را با استفاده از روش ()DocumentBuilder.endRow کامل می کنید، یک ردیف را پایان دهید.
  • هنگامی که تمام سطرها را با استفاده از متد ()DocumentBuilder.endTable درج کرده اید، جدول را پایان دهید.
  • سند Word را با استفاده از متد ()Document.save ذخیره کنید.

قطعه کد زیر نحوه ایجاد جدول در سند Word را با استفاده از جاوا نشان می دهد.

// سند ایجاد یا بارگیری کنید.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// یک جدول جدید ایجاد کنید و سلول را وارد کنید.
Table table = builder.startTable();
builder.insertCell();

// قالب بندی گسترده جدول باید پس از وجود حداقل یک ردیف در جدول اعمال شود.
table.setLeftIndent(20.0);

// ارتفاع را تنظیم کرده و قانون ارتفاع را برای ردیف سرصفحه تعریف کنید.
builder.getRowFormat().setHeight(40.0);
builder.getRowFormat().setHeightRule(HeightRule.AT_LEAST);

builder.getCellFormat().getShading().setBackgroundPatternColor(new Color((198), (217), (241)));
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
builder.getFont().setSize(16.0);
builder.getFont().setName("Arial");
builder.getFont().setBold(true);

builder.getCellFormat().setWidth(100.0);
builder.write("Header Row,\n Cell 1");

// ما نیازی به تعیین عرض این سلول نداریم زیرا از سلول قبلی به ارث رسیده است.
builder.insertCell();
builder.write("Header Row,\n Cell 2");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Header Row,\n Cell 3");
builder.endRow();

builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE);
builder.getCellFormat().setWidth(100.0);
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);

// ارتفاع را بازنشانی کنید و یک قاعده ارتفاع متفاوت برای بدنه جدول تعریف کنید.
builder.getRowFormat().setHeight(30.0);
builder.getRowFormat().setHeightRule(HeightRule.AUTO);
builder.insertCell();
        
// بازنشانی قالب بندی فونت
builder.getFont().setSize(12.0);
builder.getFont().setBold(false);

builder.write("Row 1, Cell 1 Content");
builder.insertCell();
builder.write("Row 1, Cell 2 Content");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Row 1, Cell 3 Content");
builder.endRow();

builder.insertCell();
builder.getCellFormat().setWidth(100.0);
builder.write("Row 2, Cell 1 Content");

builder.insertCell();
builder.write("Row 2, Cell 2 Content");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Row 2, Cell 3 Content.");
builder.endRow();

// جدول پایانی
builder.endTable();

// ذخیره سند
doc.save("table.docx");

تصویر زیر اسکرین شات جدولی است که با استفاده از نمونه کد بالا ایجاد کرده ایم.

جدول در یک سند Word

ایجاد جدول با استفاده از DOM

Document Object Model (DOM) یک نمایش در حافظه از یک سند Word است که به شما امکان می‌دهد به صورت برنامه‌نویسی محتوا و قالب‌بندی یک سند Word را بخوانید، دستکاری و تغییر دهید. مراحل زیر نحوه ایجاد جدول در سند Word با استفاده از DOM را نشان می دهد.

  • یک شی از کلاس Document برای بارگذاری یا ایجاد سند Word ایجاد کنید.
  • یک شی از کلاس Table ایجاد کنید و جدول را با استفاده از روش Document.getFirstSection().getBody().appendChild(Table) در سند وارد کنید.
  • یک شی از کلاس Row ایجاد کرده و با استفاده از متد Table.appendChild(Row) در جدول قرار دهید.
  • یک شی از کلاس Cell ایجاد کنید، گزینه های قالب بندی را تنظیم کنید و متن را به سلول اضافه کنید.
  • با استفاده از روش Row.appendChild(Cell) سلول را در ردیف قرار دهید.
  • این روند را برای هر تعداد ردیفی که می خواهید تکرار کنید.
  • سند Word را با استفاده از متد ()Document.save ذخیره کنید.

قطعه کد زیر نحوه ایجاد جدول در یک سند Word در جاوا را نشان می دهد.

// سند ایجاد یا بارگیری کنید.
Document doc = new Document();
        
// با ایجاد شی جدول شروع می کنیم. توجه داشته باشید که باید شی document را پاس کنیم
// به سازنده هر گره. این به این دلیل است که هر گره ای که ایجاد می کنیم باید متعلق باشد
// به یک سند
Table table = new Table(doc);
doc.getFirstSection().getBody().appendChild(table);

// در اینجا می‌توانیم EnsureMinimum را فراخوانی کنیم تا ردیف‌ها و سلول‌ها را برای ما ایجاد کند. این روش استفاده می شود
// تا اطمینان حاصل شود که گره مشخص شده معتبر است. در این حالت، یک جدول معتبر باید حداقل یک ردیف و یک سلول داشته باشد.

// درعوض، ما خودمان با ایجاد سطر و جدول کار خواهیم کرد.
// اگر در حال ایجاد یک جدول در داخل یک الگوریتم باشیم، این بهترین راه برای انجام این کار خواهد بود.
Row row = new Row(doc);
row.getRowFormat().setAllowBreakAcrossPages(true);
table.appendChild(row);

// اکنون می‌توانیم تنظیمات مربوط به خودکار را اعمال کنیم.
table.autoFit(AutoFitBehavior.FIXED_COLUMN_WIDTHS);

Cell cell = new Cell(doc);
cell.getCellFormat().getShading().setBackgroundPatternColor(Color.BLUE);
cell.getCellFormat().setWidth(80.0);
cell.appendChild(new Paragraph(doc));
cell.getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 1 Text"));

row.appendChild(cell);

// سپس این فرآیند را برای سایر سلول‌ها و ردیف‌های جدول تکرار می‌کنیم.
// همچنین می‌توانیم با شبیه‌سازی سلول‌ها و ردیف‌های موجود، سرعت کار را افزایش دهیم.
row.appendChild(cell.deepClone(false));
row.getLastCell().appendChild(new Paragraph(doc));
row.getLastCell().getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 2 Text"));

// ذخیره سند
doc.save("table.docx");

درج یک جدول تودرتو در اسناد Word

همچنین ممکن است موردی وجود داشته باشد که شما نیاز به ایجاد یک جدول تودرتو داشته باشید که در داخل سلولی از جدول والد قرار دارد. شما می توانید بدون گذراندن یک فرآیند پیچیده این کار را انجام دهید. ابتدا یک جدول والد ایجاد کنید و سپس متد DocumentBuilder.moveTo(Cell.getFirstParagraph()) را فراخوانی کنید تا کنترل را به داخل سلول مورد نظر جدول والد منتقل کنید. پس از اتمام، یک جدول جدید به همین ترتیب ایجاد کنید.

قطعه کد زیر نحوه ایجاد یک جدول تودرتو در یک سند Word را با استفاده از جاوا نشان می دهد.

// سند ایجاد یا بارگیری کنید.
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.getFirstParagraph());

// میز داخلی را بسازید.
builder.insertCell();
builder.writeln("Inner Table Cell 1");
builder.insertCell();
builder.writeln("Inner Table Cell 2");
builder.endTable();

// ذخیره سند
doc.save("table.docx");

تصویر زیر تصویر جدول تودرتویی است که در بالا ایجاد کرده ایم.

Nested Table in a Word Document

یک جدول Word از HTML در جاوا ایجاد کنید

شما همچنین می توانید یک جدول در یک سند Word با استفاده از رشته HTML ایجاد کنید و در اینجا مراحلی وجود دارد که باید دنبال شوند.

  • یک شی از کلاس Document برای بارگذاری یا ایجاد سند Word ایجاد کنید.
  • یک شی از کلاس DocumentBuilder ایجاد کنید.
  • رشته HTML جدول را با استفاده از روش DocumentBuilder.insertHtml(String) در سند وارد کنید.
  • در نهایت، سند را با استفاده از متد ()Document.save ذخیره کنید.

در زیر قطعه کد برای ایجاد جدول Word از یک رشته HTML آمده است.

// سند ایجاد یا بارگیری کنید.
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("table.docx");

مجوز رایگان دریافت کنید

می توانید برای استفاده از Aspose.Words برای جاوا بدون محدودیت ارزیابی، مجوز موقت دریافت کنید.

نتیجه

در این پست وبلاگ، نحوه ایجاد جداول در اسناد Word با استفاده از جاوا را بررسی کرده ایم. نحوه ایجاد جدول با استفاده از سازنده سند یا DOM، ایجاد یک جدول تودرتو، و ایجاد جدول از یک رشته HTML را دیده اید. با نصب کتابخانه و پیروی از دستورالعمل ها، می توانید به راحتی ویژگی ایجاد جدول را در برنامه جاوا خود ادغام کنید.

Aspose.Words برای جاوا ویژگی ها و گزینه های قالب بندی متعدد دیگری را ارائه می دهد که به شما امکان می دهد اسناد غنی و پیچیده را به راحتی ایجاد کنید. برای کسب اطلاعات بیشتر در مورد Aspose.Words برای جاوا، [اسناد5 و [مثال8 گسترده آن را بررسی کنید. در صورت وجود هرگونه سوال، از طریق [فوروم6 ما به ما اطلاع دهید.

همچنین ببینید