2016-09-19 6 views
2

При чтении файла excel с расширением xlsx с использованием apache poi требуется долгое время для определения расширения. Не могли бы вы помочь, почему это занимает много времени?При чтении данных из файла Excel с расширением xlsx с использованием apache poi требуется длительное время

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

Почему вы делаете идентификацию самостоятельно? Почему вы не просто используете [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()); 

Как объяснены в Apache POI docs, use a File directly in preference to an InputStream для более быстрой и более низкой обработки памяти

 Смежные вопросы

  • Нет связанных вопросов^_^