POIで出力したExcelファイルを開いてすぐに閉じると 「'○○.xls'への変更を保存しますか?」といったメッセージが出てしまい、 何とかならないかと困っている状況です。 全体的な流れとしては単純で、テンプレートとなるExcelファイルを用意して それをPOIを利用して読み込み、値をセットして、別名で保存しなおしています。 テンプレートは、SUM関数が書かれただけのシンプルなものです。 POIのバージョンは、3.8です。 JREは、1.5.0_15を使用しています。 プログラムは以下になります。 ----------------------------------------------------- int rowNo = 0; int colNo = 0; FileOutputStream fileOutputStream = null; try{ //EXCEL読み込み HSSFWorkbook inputWorkbook = new HSSFWorkbook( new FileInputStream(new File("C:\\Test1.xls"))); fileOutputStream = new FileOutputStream("C:\\結果.xls"); //最初のシートを取得する HSSFSheet sheet = inputWorkbook.getSheetAt(0); sheet.setForceFormulaRecalculation(true); //ROW取得 HSSFRow row = sheet.getRow(rowNo); if(null == row)row = sheet.createRow(rowNo); //CELL取得 HSSFCell cell = row.getCell(colNo); if(null == cell)cell = row.createCell(colNo); //値を書き込む cell.setCellValue(1); //EXCELファイル書き出し inputWorkbook.write(fileOutputStream); }catch (Exception e) { e.printStackTrace(); }finally{ try{ if(null != fileOutputStream)fileOutputStream.close(); }catch (Exception e) { e.printStackTrace(); } } ----------------------------------------------------- 以下の一文を除くと、変更メッセージは表示されなくなります。 sheet.setForceFormulaRecalculation(true); しかし、この一文がないとSUM関数の計算が動作しません。 記述、認識の不備、また解決に向けた良い方法がありましたら ご教授のほど、よろしくお願いします。
↧