ApachePOI3.8を使用しています。Excel(.xslx)ファイルを生成するJSPがあります。私はそれをローカルで開発しました、そしてファイルは問題なく開くことができました。次に、アプリをDev環境にデプロイし、そこで生成されたExcelファイルを開くと、「Excelがausencias.xlsxで読み取り不可能なコンテンツを検出しました。このワークブックのコンテンツを復元しますか?このワークブックのソースを信頼し、[はい]をクリックします。」[はい]をクリックすると、次のアラートが表示されます。「このファイルはMicrosoftExcelを使用して開くことはできません。ファイルを開くことができるコンバーターをMicrosoftOffice Online Webサイトで検索しますか?」[いいえ]をクリックすると、ファイルが正しく開かれます。しかし、なぜこれらのエラーが発生するのかわかりません。
単純な空の.xslxファイルを生成した場合でも発生します。
<%@page import="java.io.FileOutputStream"%>
<%@page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@page import="java.io.IOException"%>
<%@page import="javax.servlet.*"%>
<%@page import="org.apache.poi.ss.usermodel.*"%>
<%@page import="org.apache.poi.ss.util.CellRangeAddress"%>
<%@page import="org.apache.poi.xssf.usermodel.*"%>
<%
response.setHeader ("Content-Disposition", "attachment;filename=\"ausencias.xlsx\"");
response.setContentType("application/vnd.ms-excel");
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("Ausencias");
ServletOutputStream fout = response.getOutputStream();
wb.write(fout);
fout.flush();
fout.close();
%>
ローカルマシンには、Microsoft Office Excel 2007(12.0.6661.5000)SP2 MSO(12.0.6562.5003)があります。開発環境には、Microsoft Office Excel 2007(12.0.6611.1000)SP3 MSO(12.0.6607.1000)があります。
誰かが解決策や回避策を知っていますか?
ありがとう。
編集:JSPコード全体を追加しました。一部のインポートが使用されない場合があることを認識しています。問題を探して元のコードを切り抜いたときに、そのままにしておきました。
編集2:開発環境で生成されたドキュメントをローカルマシンで開いたところ、同じ警告がスローされます。したがって、問題はファイルにあり、Excelバージョンにはありません。DevEnvのファイルが改ざんされているようです。何か案は??