AdvanceSoftware Tech Blog

アドバンスソフトウェア株式会社の技術ブログ

Javaで帳票を作成、出力する方法

Javaで帳票を作成、出力するには主にAS-Reportなどのサードパーティー製ツールを利用する方法があります。特にAS-ReportはExcelが帳票デザイナーとなるため、帳票ツール独自のデザイナー機能を新たに覚える必要はなく、エンドユーザーが後から帳票レイアウトを変更することも可能です。

本記事ではJavaでAS-Reportを使用して帳票を作成、出力する方法を紹介します。

環境

  • Windows 11
  • Eclipse 2025
  • JDK 8
  • AS-Report for Java

使用準備

プロジェクトを作成

1.Eclispeを起動し、上部メニューの[ファイル] > [新規] > [動的 Web プロジェクト]を選択し、[新規動的 Web プロジェクト]ウインドウを開きます。

2.以下の項目を入力し、右下の[完了]をクリックします。
プロジェクト名:asrjsample
ターゲット・ランタイム:Tomcat8 (Java8)

サーブレットの作成

1.上部メニューの[ファイル] > [新規] > [その他]を選択しウィザードを開き、[Web] > [サーブレット]を選択して右下の[次へ]をクリックします。

2.以下の項目を設定し、右下の[完了]をクリックします。
クラス名:ReportServlet

JSPファイルの作成

1.上部メニューの[ファイル] > [新規] > [その他]を選択しウィザードを開き、[Web] > [JSP ファイル]を選択して右下の[次へ]をクリックします。

2.[WEB-INF]フォルダを選択し、ファイル名を"index.jsp"に設定して右下の完了をクリックします。

プロジェクトにAS-Reportを追加

1.以下のようにlibフォルダにAS-Report for Javaのjarファイルを格納します。

2.webappフォルダ配下にAS-Report for Javaのスクリプトファイルを配置します。

帳票を出力

1.index.jspへ帳票をプレビューするコードを実装します。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AS-Report for Java Sample</title>
<script type="text/javascript"
    src="<%=request.getContextPath()%>/Scripts/jquery-3.7.1.min.js"></script>
<script type="text/javascript"
    src="<%=request.getContextPath()%>/Scripts/gunzip.min.js"></script>
<script type="text/javascript"
    src="<%=request.getContextPath()%>/Scripts/asreport.viewer.1.0.0.js"></script>
</head>
<body>
    <!--帳票ドキュメント格納用の DIV 要素(id="documentcontainer")を用意。スクリプトレットで帳票ドキュメントを挿入-->
    <div id="documentcontainer" style="display: none;">
        <%=(String) request.getAttribute("svgzdocument")%>
    </div>

    <!--ビューア配置用の DIV 要素(id="viewercontainer")を用意。widthheight でサイズ指定-->
    <div id="viewercontainer" style="width: 100%; height: 850px;"></div>

    <!--ビューアの表示とプレビュー実行-->
    <script type="text/javascript">
       $(function() {
            // ビューアを id 名 [viewercontainer] の DIV 要素に表示
            viewer = new CellReport.Viewer('viewercontainer');
            // id 名 [documentcontainer] の DIV 要素に格納された帳票ドキュメントを読み込む
            viewer.report('documentcontainer');
        });
   </script>
</body>
</html>

2.ReportServlet.javaへ帳票を作成するコードを実装します。

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jp.co.adv.asreport.CellReport;
import jp.co.adv.asreport.enums.ExcelVersion;
import jp.co.adv.asreport.enums.SvgSaveType;

/**
 * Servlet implementation class GraphServlet
 */
@WebServlet("/ReportServlet")
public class ReportServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
   * @see HttpServlet#HttpServlet()
   */
    public ReportServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        CellReport cellReport = new CellReport();
        cellReport.getReport().start();
        cellReport.getReport().create(ExcelVersion.ver2024);
        cellReport.getPage().start("Sheet1", "1-9999");
        cellReport.getCell("A1").setValue("Hello World");
        cellReport.getPage().end();
        cellReport.getReport().end();
        request.setAttribute("svgzdocument", cellReport.getReport().getSvgz(SvgSaveType.IncludeExcelPdf));
        RequestDispatcher requestDispatcher = request.getRequestDispatcher("/WEB-INF/index.jsp");
        requestDispatcher.forward(request, response);
    }

    /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

3.プロジェクトを実行し、(http://localhost:****/asrjsample/ReportServlet)へアクセスします。 帳票のプレビューが確認できます。

4.プレビュー画面の左上のボタンからPDF、 Excel出力が行えます。

5.プレビュー画面の左上のボタンから印刷が行えます。

まとめ

AS-Reportを使用することで簡単にJavaで帳票を作成、出力することができました。

製品と同等の機能をお試しいただける体験版もご用意しておりますのでお気軽に動作をお試しください。

AS-Report for Java製品ページはこちら
AS-Report for Java体験版はこちら
AS-Report for Javaオンラインデモはこちら

© 2022 Advance Software Co., Ltd. All Rights Reserved.