0

すべての添付ファイルを拡張子なしで Excel (xls/HSSF) から保存したいと考えています。私は長い間試してきましたが、これが可能かどうかは本当にわかりません。Apache Tika も試してみましたが、Tika は使いたくありません。とにかく、他のタスクで POI が必要だからです。

Busy Developers Guideのサンプル コードを試してみましたが、古い Office 形式 (doc、ppt、xls) のファイルが抽出されません。エラーを作成しようとすると、エラーがスローされますnew SlideShow(new HSLFSlideShow(dn, fs))(Remove argument to match HSLFSlideShow(dn))

私の実際のコードは次のとおりです。

public static void saveEmbeddedXLS(InputStream fis_param, String embDIR) throws IOException, InvalidFormatException{
    //HSSF - XLS

    int i = 0;
    System.out.println("Starting Embedded Search in xls...");

    POIFSFileSystem fs = new POIFSFileSystem(fis_param);//create FileSystem using fileInputStream
    HSSFWorkbook workbook = new HSSFWorkbook(fs);

    for (HSSFObjectData obj : workbook.getAllEmbeddedObjects()) {

        System.out.println("Objects : "+ obj.getOLE2ClassName());//the OLE2 Class Name of the object
        String oleName = obj.getOLE2ClassName();//Document Type

        DirectoryNode dn = (DirectoryNode) obj.getDirectory();//get Directory Node  

        //Trying to create an input Stream with the embedded document, argument of createDocumentInputStream should be: String; Where/How can I get this correct parameter for the function?
        InputStream is = dn.createDocumentInputStream(dn);//This line is incorrect! How can I do i correctly? 

        FileOutputStream fos = new FileOutputStream("embDIR" + i);//Outputfilepath + Number

        IOUtils.copy(is, fos);//FileInputStream > FileOutput Stream (save File without extension)
        i++;
       } 
    }

私の簡単な質問は次のとおり です。xlsファイルからすべての添付ファイルを拡張子なしで(できるだけ簡単に)保存することは可能ですか?そして、誰かが私に解決策を提供できますか? どうもありがとう!

4

0 に答える 0