Spire.Doc for Java で提供される Table.applyVerticalMerge() メソッドと Table.applyHorizontalMerge() メソッドは、それぞれ表のセルを垂直に結合するときと水平に結合するときに使用されます。デフォルトでは、結合するセルに同じ値が複数含まれている場合、結合後のセルにもこれらの重複した値が含まれます。表をより明瞭にするために、重複した値を削除することができます。この記事では、Spire.Doc for Java を使用して Word でセルを結合する際に重複した値を削除する方法を示します。 Spire.Doc for Java をインストールします まず、Spire.Doc for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。 <repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc</artifactId> <version>11.10.3</version> </dependency> </dependencies> Word でセルを結合する際に重複した値を削除する セルを結合するときに重複した値を削除するには、mergeCell(Table table, boolean isHorizontalMerge, int index, int start, int end) のカスタムメソッドを作成します。このメソッドでは、結合された範囲内の最初のセルの値が範囲内の他のセルの値と同じかどうかを判断します。それらが同じである場合は、他のセルの値を削除してからセルを結合します。詳細な手順は次のとおりです。 Document クラスのオブジェクトを作成します。 Document.loadFromFile() メソッドを使用して、サンプルドキュメントを読み込みます。 Document.getSections() メソッドを使用してセクション・コレクションを取得し、SectionCollection.get() メソッドを使用して特定のセクションを取得します。 Section.getTables() メソッドを使用してテーブル・コレクションを取得し、TableCollection.get() メソッドを使用して目的のテーブルを取得します。 mergeCell(Table table, boolean isHorizontalMerge, int index, int start, int end) メソッドを呼び出して、テーブルのセルを水平または垂直に結合し、重複する値を削除します。 Document.saveToFile() メソッドを使用して、結果ファイルに保存します。 Java import com.spire.doc.*; public class MergeCells { public static void main(String[] args) throws Exception { //Documentクラスのオブジェクトを作成し、サンプルドキュメントを読み込む Document document = new Document(); document.loadFromFile("Sample.docx"); //最初のセクションを取得する Section section = document.getSections().get(0); //最初のテーブルを取得する Table table = section.getTables().get(0); //セルを垂直方向に結合する mergeCell(table, false, 0, 1, 2); //セルを水平方向に結合する mergeCell(table, true, 0, 3, 4); //結果ファイルを保存する document.saveToFile("MergeTable.docx",FileFormat.Docx_2013); document.dispose(); } //セルを結合する際に重複した値を削除する public static void mergeCell(Table table, boolean isHorizontalMerge, int index, int start, int end) { if (isHorizontalMerge) { //テーブルから特定のセルを取得する TableCell firstCell = table.get(index, start); //セルからテキストを取得する String firstCellText = getCellText(firstCell); for (int i = start + 1; i