2012-12-01 90 views
0

我知道如何從excel xls/xlxs讀取數據。現在我的要求是我必須使用POI 3.8從excel文件讀取圖像和數據。你能指導我如何做到這一點。 讀取圖像和數據都來自一個excel文件提前使用POI ....謝謝使用poi從excel文件讀取圖像和數據

回答

2

直接從the developer's guide

List lst = workbook.getAllPictures(); 
for (Iterator it = lst.iterator(); it.hasNext();) { 
    PictureData pict = (PictureData)it.next(); 
    String ext = pict.suggestFileExtension(); 
    byte[] data = pict.getData(); 
    if (ext.equals("jpeg")){ 
     FileOutputStream out = new FileOutputStream("pict.jpg"); 
     out.write(data); 
     out.close(); 
    } 
} 

RTM :)

+0

感謝,但其只對我的圖片想要從文件中讀取其他數據,就像我有一個文件,其中我有一個人的圖片和它的名字,電子郵件,地址和電話號碼,我有100個記錄像DIS,所以我想讀取圖片和其餘數據爲well workbook.getAllPic tures()會給我所有的圖片 –

+0

我建議閱讀開發者指南,然後,如果你已經這樣做了,發佈你已經嘗試過的東西。 – GaryF

+0

我已經做了。我已經嘗試了這個代碼以及它的工作,但我的要求是讀取數據和圖片。我認爲你沒有得到我的觀點 –

-1
XSSFSheet mySheet1 = workbook.getSheetAt(0); 
Iterator<Row> rowIterator1 = mySheet1.iterator(); 
if(rowIterator1.hasNext()) 
{ 
    rowIterator1.next(); 
} 
int pcount=1; 
Iterator<XSSFPictureData> it = lst.iterator(); 

for (int i=0; i<lst.size(); i++) 
{ 
    Row row = rowIterator1.next(); 

// PictureData pict = (PictureData)it.next(); 
    PictureData pict = (PictureData)lst.get(i); 

    String ext = pict.suggestFileExtension(); 

    byte[] data = pict.getData(); 
    String studentName = row.getCell(3).getStringCellValue(); 
    int age =(int)row.getCell(14).getNumericCellValue(); 
    int year = (int)row.getCell(16).getNumericCellValue(); 

    System.out.println(studentName+":"+age+":"+year); 

    FileOutputStream out = new FileOutputStream("D:\\excel\\RPC\\"+pcount+"."+year+"."+age+".png"); 

    out.write(data); 
    out.close(); 
    pcount++; 

    rowIterator1.hasNext(); 

    } 
} 
相關問題