JavaからxlsxファイルをServletのレスポンスとして出力

1,165 views
Skip to first unread message

PSC大冨

unread,
Mar 8, 2016, 7:27:02 PM3/8/16
to RapidReportサポート QAフォーラム
お世話になります。

現在JavaからxlsxファイルをServletのレスポンスとして出力する処理を作成しております。

しかし、PDFをServletのレスポンスとして出力する方法を参考に作成しておりますが、出力できていません。

xlsxファイルをServletのレスポンスとして出力する方法がありましたら、サンプルのソースコードをご教示頂ければと思います。

宜しくお願い致します。

RapidReport

unread,
Mar 8, 2016, 7:46:21 PM3/8/16
to RapidReportサポート QAフォーラム
伊藤です。ご質問ありがとうございます。

Servletからのxlsx形式での出力は、以下のコードによって可能になります。

  Report report = new Report(ReadUtil.readJson("example.rrpt"));
  report.fill(new ReportDataSource(data));
  ReportPages pages = report.getPages();
  
  XSSFWorkbook workBook = new XSSFWorkbook();
  XlsxRenderer renderer = new XlsxRenderer(workBook);
  // シート名をここで指定します
  renderer.newSheet("シート1");
  pages.render(renderer);
  
  ByteArrayOutputStream byteout = new ByteArrayOutputStream();
  workBook.write(byteout);  				
  response.setContentType("application/xlsx");
  // ファイル名をここで指定します
  response.setHeader("Content-Disposition","attachment; filename=example1.xlsx");
  response.setContentLength(byteout.size());
  OutputStream out = response.getOutputStream();
  try {
      out.write(byteout.toByteArray());
  } finally{
      out.close();
  }

PSC大冨

unread,
Mar 10, 2016, 5:02:02 AM3/10/16
to RapidReportサポート QAフォーラム
お世話になります。

回答頂き、ありがとうございます。
無事出力することができるようになりました。

ありがとうございました。
Reply all
Reply to author
Forward
0 new messages