Word でレポートを作成するときは、Excel からデータをコピーして Word に貼り付ける必要があることがよくあります。これにより、Excel ドキュメントを開くことなく、読者が Word でデータを直接参照できます。この記事では、Spire.Office for Java を使用してフォーマットされた Excel データを Word テーブルにエクスポートする方法を紹介します。 Spire.Office for Java をインストールします まず、Spire.Office 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.office</artifactId> <version>7.10.4</version> </dependency> </dependencies> フォーマットされた Excel データを Word テーブルにエクスポートする方法 Spire.Office for Java を使用してフォーマットされた Excel データを Word テーブルにエクスポートする手順を次に示します。 Workbook オブジェクトを作成し、Workbook.loadFromFile() メソッドを使用して Excel サンプルファイルをロードします。 Workbook.getWorksheets().get() メソッドを使用して特定のワークシートを取得します。 Document オブジェクトを作成し、セクションを追加します。 Section.addTable() メソッドを使用してテーブルを追加します。 ワークシート内の結合セルを検出し、カスタム・メソッド mergeCells() を使用して Word tale 内の対応するセルを結合します。 CellRange.getValue() メソッドを使用して特定の Excel セルの値を取得し、TableCell.addParagraph().appendText() メソッドを使用して Word テーブルのセルに追加します。 カスタムメソッド copyStyle() を使用して、Excel から Word テーブルにフォントスタイルとセルスタイルをコピーします。 Document.saveToFile() メソッドを使用して、Word ファイルに保存します。 Java import com.spire.doc.*; import com.spire.doc.FileFormat; import com.spire.doc.documents.HorizontalAlignment; import com.spire.doc.documents.PageOrientation; import com.spire.doc.documents.VerticalAlignment; import com.spire.doc.fields.TextRange; import com.spire.xls.*; public class ExportExcelToWord { public static void main(String[] args) { //Excelファイルをダウンロードする Workbook workbook = new Workbook(); workbook.loadFromFile("C:/Users/Administrator/Desktop/sample.xlsx"); //最初のシートを取得する Worksheet sheet = workbook.getWorksheets().get(0); //Wordドキュメントを作成する Document doc = new Document(); Section section = doc.addSection(); section.getPageSetup().setOrientation(PageOrientation.Landscape); //テーブルを追加する Table table = section.addTable(true); table.resetCells(sheet.getLastRow(), sheet.getLastColumn()); //セルをマージする mergeCells(sheet, table); for (int r = 1; r 1) { for (int j = startRow; j 1 && columnCount == 1 ) { table.applyVerticalMerge(startColumn - 1, startRow - 1, startRow - 1 + rowCount - 1); } if (columnCount > 1 && rowCount == 1 ) { table.applyHorizontalMerge(startRow - 1, startColumn - 1, startColumn - 1 + columnCount-1); } } } } // ExcelセルスタイルをWordテーブルにコピーする private static void copyStyle(TextRange wTextRange, CellRange xCell, TableCell wCell) { //フォントスタイルをコピーする wTextRange.getCharacterFormat().setTextColor(xCell.getStyle().getFont().getColor()); wTextRange.getCharacterFormat().setFontSize((float) xCell.getStyle().getFont().getSize()); wTextRange.getCharacterFormat().setFontName(xCell.getStyle().getFont().getFontName()); wTextRange.getCharacterFormat().setBold(xCell.getStyle().getFont().isBold()); wTextRange.getCharacterFormat().setItalic(xCell.getStyle().getFont().isItalic()); //背景色をコピーする wCell.getCellFormat().setBackColor(xCell.getStyle().getColor()); //水平方向の配置をコピーする switch (xCell.getHorizontalAlignment()) { case Left: wTextRange.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Left); break; case Center: wTextRange.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center); break; case Right: wTextRange.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Right); break; } //垂直方向の配置をコピーする switch (xCell.getVerticalAlignment()) { case Bottom: wCell.getCellFormat().setVerticalAlignment(VerticalAlignment.Bottom); break; case Center: wCell.getCellFormat().setVerticalAlignment(VerticalAlignment.Middle); break; case Top: wCell.getCellFormat().setVerticalAlignment(VerticalAlignment.Top); break; } } } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。