2016-09-19 13 views
2

拡張子xlsxを持つexcelファイルをapache poiで読み取ると、拡張子を識別するのに時間がかかります。なぜそれが長い時間を取るのを助けてもらえますか?apache poiを使用して拡張子xlsxのExcelファイルからデータを読み取っているうちに時間がかかります

if (file.getExcelFile().getOriginalFilename().endsWith("xls")) 
    { 
    workbook = new HSSFWorkbook(file.getExcelFile().getInputStream()); 
    } else if (file.getExcelFile().getOriginalFilename().endsWith("xlsx")) 
    { 
    workbook = new XSSFWorkbook(file.getExcelFile().getInputStream()); 
    } else { 
    throw new IllegalArgumentException("Received file does not have a standard excel extension."); 
    } 
+2

迅速かつ低メモリ処理のためにApache POI docs, use a File directly in preference to an InputStreamで説明なぜあなたは識別を自分でやっているの?なぜあなたは[WorkbookFactory.create(File)](http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/WorkbookFactory.html#create(java.io.File))を使用していないのですか? ? – Gagravarr

+0

ありがとうGagrvarr私はこの方法でこれを解決しました。 – Ram

答えて

3

答えにコメントをする - あなた自身でこれをやろうとしないで、Apache POIにはこれを行うための組み込みコードがあります。

あなたはそれを行うにはWorkbookFactory.create(File)を使用する必要があり、例えばちょうど

workbook = WorkbookFactory.create(file.getExcelFile()); 

としては

関連する問題