java導入excel時遇到的版本問題


  java中讀取excel文件時對不同的版本提供了不同的讀取方法,這就要求我們在讀取excel文件時獲取excel文件的版本信息從而通過不同的版本去使用不同的讀取方式,

  在WorkbookFactory.create()函數中,做過對文件類型的判斷,所以我們如果想通過修改文件后綴去創建對應的Workbook對象是行不通的,我們看一下源碼是如何判

  判斷笨笨類型從而創建對應的對象的:

public static Workbook create(InputStream inp) throws IOException, InvalidFormatException {

// If clearly doesn't do mark/reset, wrap up

if(! inp.markSupported()) {

  inp = new PushbackInputStream(inp, 8);

}

if(POIFSFileSystem.hasPOIFSHeader(inp)) {

  return new HSSFWorkbook(inp);

}

if(POIXMLDocument.hasOOXMLHeader(inp)) {

  return new XSSFWorkbook(OPCPackage.open(inp));

}

throw new IllegalArgumentException("Your InputStream was neither an OLE2 stream, nor an OOXML stream");

}

  

由此我們便可以通過判斷不同的文件版本去使用對應的對象讀取excel中的信息了

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM