ליצור טבלאות במסמכי Word באמצעות Java

Microsoft Word הוא יישום עיבוד תמלילים פופולרי המשמש ליצירת סוגים שונים של מסמכים. מסמכים אלה עשויים להכיל מספר סוגים של אלמנטים כולל טקסט, תמונות, טבלאות ותרשימים. כשמדובר באוטומציה של יצירת מסמכים ומניפולציה ב-Java, ייתכן שתזדקק לפתרון חסר מאמץ ליצירת טבלאות בתוך מסמכי Word. אז בפוסט זה בבלוג, נחקור כיצד ליצור טבלאות במסמכי Word ביישום Java.

ספריית Java ליצירת טבלאות במסמכי Word

Aspose.Words for Java הוא API המאפשר למפתחי Java לעבוד עם מסמכי 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 ב-Java

ישנן שתי דרכים ליצור טבלאות במסמכי Word באמצעות Aspose.Words עבור Java:

  • באמצעות DocumentBuilder
  • שימוש ב-DOM (מודל אובייקט מסמך)

אתה יכול לבחור את השיטה המתאימה ביותר לדרישות שלך. אז בואו נחקור כל אחת מהשיטות הללו בפירוט.

צור טבלה באמצעות DocumentBuilder

הכיתה DocumentBuilder מספקת לך דרך מהירה וקלה ליצור מסמכים דינמיים מאפס או לעבד מסמכים קיימים. הוא מציע מגוון פונקציות להוספת רכיבי תוכן שונים כגון טקסט, תיבות סימון, אובייקטי OLE, פסקאות, רשימות, טבלאות, תמונות ועוד.

להלן השלבים המשתמשים במחלקת DocumentBuilder ליצירת טבלה במסמך Word ב-Java.

  • צור אובייקט מהמחלקה Document כדי לטעון או ליצור את מסמך Word.
  • צור אובייקט של המחלקה DocumentBuilder.
  • התחל טבלה באמצעות שיטת DocumentBuilder.startTable().
  • הכנס תא באמצעות שיטת DocumentBuilder.insertCell()‎.
  • (אופציונלי) החל עיצוב על התא, כגון גופן ויישור.
  • הוסף טקסט לתא באמצעות שיטת DocumentBuilder.write() .
  • חזור על הוספת תאים וטקסט לתאים לפי הצורך.
  • סיים שורה כאשר אתה משלים את הוספת התאים באמצעות שיטת DocumentBuilder.endRow().
  • סיום טבלה לאחר שהוספת את כל השורות באמצעות שיטת DocumentBuilder.endTable().
  • שמור את מסמך Word באמצעות שיטת Document.save().

קטע הקוד הבא מראה כיצד ליצור טבלה במסמך Word באמצעות Java.

// צור או טען מסמך.
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");

להלן צילום המסך של הטבלה שיצרנו באמצעות דוגמת הקוד שלמעלה.

טבלה במסמך וורד

צור טבלה באמצעות DOM

מודל אובייקט מסמך (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 ב-Java.

// צור או טען מסמך.
Document doc = new 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 באמצעות Java.

// צור או טען מסמך.
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 ב-Java

ניתן גם ליצור טבלה במסמך 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 עבור Java ללא מגבלות הערכה.

סיכום

בפוסט זה בבלוג, בדקנו כיצד ליצור טבלאות במסמכי Word באמצעות Java. ראית כיצד ליצור טבלה באמצעות בונה מסמכים או DOM, ליצור טבלה מקוננת וליצור טבלה ממחרוזת HTML. על ידי התקנת הספרייה וביצוע ההנחיות, תוכל לשלב בקלות את תכונת יצירת הטבלה באפליקציית Java שלך.

Aspose.Words עבור Java מספקת תכונות רבות אחרות ואפשרויות עיצוב, המאפשרות לך ליצור מסמכים עשירים ומורכבים בקלות. למידע נוסף על Aspose.Words עבור Java, חקור את תיעוד ודוגמאות הנרחבות שלה. בכל שאלה, אל תהסס ליידע אותנו דרך הפורום שלנו.

ראה גם