Microsoft Word to popularny edytor tekstu służący do tworzenia różnego rodzaju dokumentów. Dokumenty te mogą zawierać kilka typów elementów, w tym tekst, obrazy, tabele i wykresy. Jeśli chodzi o automatyzację tworzenia i manipulowania dokumentami w języku Java, możesz potrzebować łatwego rozwiązania do tworzenia tabel w dokumentach programu Word. Dlatego w tym poście na blogu przyjrzymy się sposobom tworzenia tabel w dokumentach programu Word w aplikacji Java.
- Biblioteka Java do tworzenia tabel w dokumentach programu Word
- Utwórz tabelę w dokumencie programu Word
- Wstaw zagnieżdżoną tabelę w dokumentach programu Word
- Utwórz tabelę z HTML
Biblioteka Java do tworzenia tabel w dokumentach programu Word
Aspose.Words for Java to interfejs API, który umożliwia programistom Java programową pracę z dokumentami Microsoft Word. Zapewnia szeroką gamę funkcji do tworzenia, modyfikowania i manipulowania dokumentami Word, co czyni go cennym narzędziem do automatyzacji zadań związanych z generowaniem i przetwarzaniem dokumentów. Będziemy używać tej biblioteki do wstawiania tabel do dokumentu programu Word.
Możesz pobrać bibliotekę lub zainstalować ją, korzystając z następujących konfiguracji Mavena.
<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>
Utwórz tabelę w dokumencie programu Word w Javie
Istnieją dwa sposoby tworzenia tabel w dokumentach programu Word przy użyciu Aspose.Words for Java:
- Korzystanie z narzędzia DocumentBuilder
- Korzystanie z DOM (obiektowego modelu dokumentu)
Możesz wybrać metodę, która najlepiej odpowiada Twoim wymaganiom. Przyjrzyjmy się więc szczegółowo każdej z tych metod.
Utwórz tabelę za pomocą narzędzia DocumentBuilder
Klasa DocumentBuilder umożliwia szybkie i łatwe tworzenie dynamicznych dokumentów od podstaw lub przetwarzanie istniejących dokumentów. Oferuje szereg funkcji do wstawiania różnych elementów treści, takich jak tekst, pola wyboru, obiekty OLE, akapity, listy, tabele, obrazy i inne.
Poniżej przedstawiono kroki, w których używana jest klasa DocumentBuilder do tworzenia tabeli w dokumencie programu Word w Javie.
- Utwórz obiekt klasy Document, aby załadować lub utworzyć dokument programu Word.
- Utwórz obiekt klasy DocumentBuilder.
- Uruchom tabelę za pomocą metody DocumentBuilder.startTable().
- Wstaw komórkę za pomocą metody DocumentBuilder.insertCell().
- (Opcjonalnie) Zastosuj formatowanie komórki, np. czcionkę i wyrównanie.
- Wstaw tekst do komórki za pomocą metody DocumentBuilder.write().
- W razie potrzeby powtórz wstawianie komórek i tekstu do komórek.
- Zakończ wiersz po zakończeniu wstawiania komórek przy użyciu metody DocumentBuilder.endRow().
- Zakończ tabelę po wstawieniu wszystkich wierszy metodą DocumentBuilder.endTable().
- Zapisz dokument programu Word za pomocą metody Document.save().
Poniższy fragment kodu pokazuje, jak utworzyć tabelę w dokumencie programu Word przy użyciu języka Java.
// Utwórz lub załaduj dokument.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Utwórz nową tabelę i wstaw komórkę.
Table table = builder.startTable();
builder.insertCell();
// Jeśli w tabeli znajduje się co najmniej jeden wiersz, należy zastosować formatowanie całej tabeli.
table.setLeftIndent(20.0);
// Ustaw wysokość i zdefiniuj regułę wysokości dla wiersza nagłówka.
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");
// Nie musimy określać szerokości tej komórki, ponieważ jest ona dziedziczona z poprzedniej komórki.
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);
// Zresetuj wysokość i zdefiniuj inną regułę wysokości dla treści tabeli.
builder.getRowFormat().setHeight(30.0);
builder.getRowFormat().setHeightRule(HeightRule.AUTO);
builder.insertCell();
// Zresetuj formatowanie czcionki.
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();
// Końcowy stół.
builder.endTable();
// Zapisz dokument.
doc.save("table.docx");
Poniżej znajduje się zrzut ekranu tabeli, którą utworzyliśmy przy użyciu powyższego przykładowego kodu.
Utwórz tabelę za pomocą DOM
Document Object Model (DOM) to reprezentacja dokumentu Word w pamięci, która umożliwia programowe odczytywanie, manipulowanie i modyfikowanie zawartości i formatowania dokumentu Word. Poniższe kroki pokazują, jak utworzyć tabelę w dokumencie programu Word przy użyciu modelu DOM.
- Utwórz obiekt klasy Document, aby załadować lub utworzyć dokument programu Word.
- Utwórz obiekt klasy Table i wstaw tabelę do dokumentu za pomocą metody Document.getFirstSection().getBody().appendChild(Table).
- Utwórz obiekt klasy Row i wstaw go do tabeli za pomocą metody Table.appendChild(Row).
- Utwórz obiekt klasy Cell, ustaw opcje formatowania i dodaj tekst do komórki.
- Wstaw komórkę do wiersza za pomocą metody Row.appendChild(Cell).
- Powtórz ten proces dla dowolnej liczby wierszy.
- Zapisz dokument programu Word za pomocą metody Document.save().
Poniższy fragment kodu pokazuje, jak utworzyć tabelę w dokumencie programu Word w Javie.
// Utwórz lub załaduj dokument.
Document doc = new Document();
// Zaczynamy od utworzenia obiektu tabeli. Pamiętaj, że musimy przekazać obiekt document
// do konstruktora każdego węzła. Dzieje się tak, ponieważ każdy węzeł, który tworzymy, musi należeć
// do jakiegoś dokumentu.
Table table = new Table(doc);
doc.getFirstSection().getBody().appendChild(table);
// Tutaj moglibyśmy wywołać SureMinimum, aby utworzyć dla nas wiersze i komórki. Ta metoda jest stosowana
// aby upewnić się, że określony węzeł jest prawidłowy. W takim przypadku prawidłowa tabela powinna zawierać co najmniej jeden wiersz i jedną komórkę.
// Zamiast tego zajmiemy się tworzeniem wiersza i tabeli samodzielnie.
// Byłby to najlepszy sposób, aby to zrobić, gdybyśmy tworzyli tabelę wewnątrz algorytmu.
Row row = new Row(doc);
row.getRowFormat().setAllowBreakAcrossPages(true);
table.appendChild(row);
// Możemy teraz zastosować dowolne ustawienia automatycznego dopasowania.
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);
// Następnie powtórzylibyśmy proces dla pozostałych komórek i wierszy tabeli.
// Możemy także przyspieszyć działanie klonując istniejące komórki i wiersze.
row.appendChild(cell.deepClone(false));
row.getLastCell().appendChild(new Paragraph(doc));
row.getLastCell().getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 2 Text"));
// Zapisz dokument.
doc.save("table.docx");
Wstaw zagnieżdżoną tabelę w dokumentach programu Word
Może się również zdarzyć, że konieczne będzie utworzenie tabeli zagnieżdżonej, która będzie umieszczona w komórce tabeli nadrzędnej. Można to zrobić bez konieczności przechodzenia przez skomplikowany proces. Najpierw utwórz tabelę nadrzędną, a następnie wywołaj metodę DocumentBuilder.moveTo(Cell.getFirstParagraph()), aby przenieść formant do żądanej komórki tabeli nadrzędnej. Po zakończeniu utwórz nową tabelę w ten sam sposób.
Poniższy fragment kodu pokazuje, jak utworzyć zagnieżdżoną tabelę w dokumencie programu Word przy użyciu języka Java.
// Utwórz lub załaduj dokument.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Wstaw komórkę.
Cell cell = builder.insertCell();
builder.writeln("Outer Table Cell 1");
builder.insertCell();
builder.writeln("Outer Table Cell 2");
// To wywołanie jest ważne, aby utworzyć zagnieżdżoną tabelę w pierwszej tabeli.
// Bez tego wywołania komórki wstawione poniżej zostaną dołączone do tabeli zewnętrznej.
builder.endTable();
// Przejdź do pierwszej komórki tabeli zewnętrznej.
builder.moveTo(cell.getFirstParagraph());
// Zbuduj wewnętrzny stół.
builder.insertCell();
builder.writeln("Inner Table Cell 1");
builder.insertCell();
builder.writeln("Inner Table Cell 2");
builder.endTable();
// Zapisz dokument.
doc.save("table.docx");
Poniżej znajduje się zrzut ekranu zagnieżdżonej tabeli, którą utworzyliśmy powyżej.
Utwórz tabelę programu Word z kodu HTML w Javie
Możesz także utworzyć tabelę w dokumencie programu Word przy użyciu ciągu HTML. Oto kroki, które należy wykonać.
- Utwórz obiekt klasy Document, aby załadować lub utworzyć dokument programu Word.
- Utwórz obiekt klasy DocumentBuilder.
- Wstaw ciąg HTML tabeli do dokumentu za pomocą metody DocumentBuilder.insertHtml(String).
- Na koniec zapisz dokument za pomocą metody Document.save().
Poniżej znajduje się fragment kodu umożliwiający wygenerowanie tabeli programu Word na podstawie ciągu HTML.
// Utwórz lub załaduj dokument.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Należy pamiętać, że ustawienie AutoFitSettings nie ma zastosowania do tabel wstawionych z formatu 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>");
// Zapisz dokument.
doc.save("table.docx");
Zdobądź bezpłatną licencję
Możesz uzyskać licencję tymczasową na używanie Aspose.Words for Java bez ograniczeń ewaluacyjnych.
Wniosek
W tym poście na blogu omówiliśmy, jak tworzyć tabele w dokumentach programu Word przy użyciu języka Java. Widziałeś, jak utworzyć tabelę za pomocą narzędzia do tworzenia dokumentów lub DOM, utworzyć tabelę zagnieżdżoną i utworzyć tabelę z ciągu HTML. Instalując bibliotekę i postępując zgodnie ze wskazówkami, możesz łatwo zintegrować funkcję tworzenia tabel z aplikacją Java.
Aspose.Words for Java zapewnia wiele innych funkcji i opcji formatowania, umożliwiając łatwe tworzenie bogatych i złożonych dokumentów. Aby dowiedzieć się więcej o Aspose.Words for Java, przejrzyj jego obszerną dokumentację i przykłady. W razie jakichkolwiek pytań prosimy o kontakt za pośrednictwem naszego forum.