使用ApachePOI提取DominoJava附件并读取excel

使用ApachePOI提取DominoJava附件并读取excel,java,lotus-domino,Java,Lotus Domino,我正在尝试将“excel模板”从现有notes文档提取到文件系统,并使用ApachePOI进行读取。我只在目录中不存在excel模板时才尝试提取该模板,否则尝试从同一位置读取,但在第二次运行时抛出null异常 这是我的密码 //If it has an attachment if (doc.hasEmbedded()) { RichTextItem body = (RichTextItem)docTmpl.getFirstItem("B

我正在尝试将“excel模板”从现有notes文档提取到文件系统,并使用ApachePOI进行读取。我只在目录中不存在excel模板时才尝试提取该模板,否则尝试从同一位置读取,但在第二次运行时抛出null异常

这是我的密码

        //If it has an attachment
        if (doc.hasEmbedded()) {

             RichTextItem body = (RichTextItem)docTmpl.getFirstItem("Body");
             Vector atts = body.getEmbeddedObjects();
             EmbeddedObject att = (EmbeddedObject)atts.elementAt(0);

             if ( att.getType() == EmbeddedObject.EMBED_ATTACHMENT ) {
                String templatePath = "C:\\externalfiles\\excel\\" + att.getSource();

                File f = new File( templatePath );

                if(f.exists())
                {
                    System.out.println("Template already exist,use existing one." + templatePath);

                } else{
                    att.extractFile(templatePath);
                }

                XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(templatePath));
                FileOutputStream fileOut = new FileOutputStream(fileName);

                XSSFSheet sheet1 = wb.getSheet("General");

哪一行代码引发异常?下面一行返回null,xssf工作簿wb=newxssf工作簿(newfileinputstream(templatePath));第二次,att.getSource()是否返回完全相同的值?是否可能该文件仍处于打开状态/您没有关闭它?