0

I want to create a new sheet on an Excel workbook that is currently open/being used. In my program, I ask the user for a new worksheet name, but when I have the Excel file open, it returns me a FileNotFoundException because it "cannot access the file because it is being used by another process." Is it possible to fix this? Or should I ask the user to close the file first?

public void exportToExcel() {
    String excelFileName = null;                                // the name/directory/address of the excel file created/selected
    FileInputStream excelFileIn = null;                         // allows us to connect to the Excel file so we can read it
    FileOutputStream excelFileOut = null;                       // allows us to connect to the Excel file so we can write to it
    ExcelFileUtility eUtil = new ExcelFileUtility();            // used open an excel file

    if(columnsQuery != null) {
        try {
            excelFileName = eUtil.getFile(FileExtensions.XLS);

            if(excelFileName != null) {
                excelFileIn = new FileInputStream(new File(excelFileName));
                workbook = new HSSFWorkbook(excelFileIn);

                exportColsToWorkbook(columnsQuery);

                excelFileOut = new FileOutputStream(excelFileName);
                workbook.write(excelFileOut);

                // close everything
                workbook.close();
                excelFileIn.close();
                excelFileOut.close();
            }
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        catch (SQLException e) {
            e.printStackTrace();
        }

    }
}
Wabbage
  • 437
  • 3
  • 6
  • 18

0 Answers0