前提
JavaにてPOIを使用したWebサーバー上で動く、Excel操作を行うプログラムを作成しました。
プログラムで作成されたExcelファイルを開こうとすると、
「(該当ファイル名)は編集のため、ロックされています」と表示されてしまいます。
読み取り専用で開くことはできます。
Excelファイル作成完了後にファイルのクローズ処理はやっているつもりです。
実現したいこと
作成されたExcelファイルにロックがかからないようにしたい
該当のソースコード
Java
1public int setExcelData(String season, String year, String groupsName, ArrayList<Employee> empList, ArrayList<HashMap<String,String>> remnantData){ 2 3 Workbook outputWorkbook = new XSSFWorkbook(); 4 5 // シートを作成 6 Sheet outputSheet = outputWorkbook.createSheet("シート"); 7 8 // 1行目を生成 9 Row outputRow = outputSheet.createRow(0); 10 // セルを作成 11 Cell outputCell = outputRow.createCell(1); 12 13 /*** 14 15 このあたりでセルに値を設定する処理を実行 16 17 ***/ 18 19 createFileName = "ファイル格納パス"; 20 21 // 出力用のストリームを用意 22 FileOutputStream out; 23 try { 24 out = new FileOutputStream(createFileName); 25 } catch (FileNotFoundException e) { 26 // TODO 自動生成された catch ブロック 27 e.printStackTrace(); 28 try { 29 outputWorkbook.close(); 30 } catch (IOException e1) { 31 // TODO 自動生成された catch ブロック 32 e1.printStackTrace(); 33 } 34 return; 35 } 36 37 // ファイルへ出力 38 try { 39 outputWorkbook.write(out); 40 } catch (IOException e2) { 41 // TODO 自動生成された catch ブロック 42 e2.printStackTrace(); 43 return; 44 }finally { 45 try { 46 outputWorkbook.close(); 47 outputWorkbook = null; 48 System.out.println("fileClose"); 49 } catch (IOException e3) { 50 // TODO 自動生成された catch ブロック 51 e3.printStackTrace(); 52 return; 53 } 54 } 55 return 0; 56 } 57 58
補足情報(FW/ツールのバージョンなど)
開発環境:Eclipse Version: 2021-03
使用言語:Java
サーバー:Tomcat9(Java11)
POI:5.10
Excel:Office Home&Business 2019
回答1件
あなたの回答
tips
プレビュー