2015-05-24 41 views
4
public Sheet readExcel() throws Exception{ 
    //File fi=new File(new File(System.getProperty("user.dir"))+"\\src\\testdata2.xls"); 
    File fi=new File("C:\\Users\\admin\\workspace\\HMS\\src\\testdata\\testdata1.xlsx"); 

    Workbook wb = new XSSFWorkbook(fi); 
    Sheet Sheet = wb.getSheetAt(0); 

    int rowCount = Sheet.getLastRowNum()-Sheet.getFirstRowNum(); 

    for (int i = 1; i < rowCount+1; i++) { 
     Row row = Sheet.getRow(i); 

     if(row.getCell(0).toString().length()==0){ 

      System.out.println(row.getCell(1).toString()+"----"+ row.getCell(2).toString()+"----"+ 

      row.getCell(3).toString()+"----"+ row.getCell(4).toString()); 
     } 
    }  
    return Sheet; 
} 

通過上面的代碼運行我得到這樣的錯誤........當讀取使用POI我得到了一個錯誤.xlsx文件「Zip文件被關閉」

異常在線程「主要」 java.lang.IllegalStateException:Zip文件 在org.apache.poi.openxml4j.util.ZipFileZipEntrySource.getEntries(ZipFileZipEntrySource.java:45) 在org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl關閉 (ZipPackage.java:186) at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:684) at org.apache.poi.openxml4 j.opc.OPCPackage.open(OPCPackage.java:254) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:201) at org.apache.poi.xssf.usermodel.XSSFWorkbook。 (XSSFWorkbook.java:294) 在ExcelReader.readExcel(ExcelReader.java:16) 在ExcelReader.main(ExcelReader.java:30)

誰能幫助我描繪出究竟是什麼的問題。

我谷歌搜索,但無法獲得解決方案!

+0

設置這些標籤與webdriver的連接是什麼? –

回答

9

要讀取一個文件XSLX使用創建的FileInputStream類的對象

//Create a object of File class to open xlsx file 

    File file = new File("path/filename.xlsx"); 

    //Create an object of FileInputStream class to read excel file 

    FileInputStream inputStream = new FileInputStream(file); 

    //create object of XSSFWorkbook class 

    Workbook wb = new XSSFWorkbook(inputStream); 

希望這HEPS你...

0

儘量縮短文件名和文件路徑。看起來像「和」之間的字符可以有多長時間限制。它爲我工作!

+0

請閱讀他們'嘗試' – Nick

0

您創建一個XSSFWorkbook時,不一定需要通過的FileInputStream對象,你也可以通過絕對路徑+文件名作爲參數,它可能會很長(對我的作品有101個字符,108個字符的雙斜槓,可能會更長)。我只是在Windows 7下編寫了一個小本地應用程序,其唯一的參數是一個屬性文件,其中包含我想要處理的.xlsx文件的絕對路徑+文件名(其他屬性)(示例屬性格式:datasetFile=C:\\Users\\jlm\\Documents\\Test Cases\\AAAS\\TestCase2JsonGenerator\\AAAS_g1.xlsx)。我只是將數據集文件屬性作爲參數傳遞給構造函數(示例代碼行:wb = new XSSFWorkbook(tags.get("datasetFile"));XSSFWorkbook。它工作得很好,但不要忘記任何雙斜槓,否則你會得到「Zip File is closed」異常(大約2小時失去)。

相關問題