2016-03-23 11 views
1

içinde apache POI kullanarak varolan xls veya xlsx dosyası hakkında veri yazmak nasıl apache POI kullanarak bir şablon .xls dosyasına (gerekirse xlsx olabilir) veri koymak deneyin ama bunu anlayamıyorum ve dosya hala değişmez. PrintStackTrace'de herhangi bir istisna atılmadı. lütfen bana bir çalışma kodu verir misiniz? Çok fazla belge okuyorum, lütfen bana çalışma kodu ile yardım edin. teşekkürlerandroid

kodum:

final Button but = (Button) findViewById(R.id.bk); 
     but.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 


       try { 

        writeXLSFile(3, 3); 


       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

      } 

     }); 

public static void writeXLSFile(int row, int col) throws IOException { 
    try { 
     FileInputStream file = new FileInputStream(Environment.getExternalStorageDirectory().toString() +"telegran/"+ "ex.xls"); 

     HSSFWorkbook workbook = new HSSFWorkbook(file); 
     HSSFSheet sheet = workbook.getSheetAt(0); 
     Cell cell = null; 

     //Update the value of cell 

     cell = sheet.getRow(row).getCell(col); 
     cell.setCellValue("changed"); 

     file.close(); 

     FileOutputStream outFile =new FileOutputStream(new File(Environment.getExternalStorageDirectory().toString() +"telegran/"+ "ex.xls")); 
     workbook.write(outFile); 
     outFile.close(); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

}

cevap

0

deneyin (file.close için); workbook.write sonra (outFile); outFile.close();

+0

değil çalışma – dudu

0

Burada sorun, ilk sırada oluşturulmamış bir satır ve bir hücre almaya çalışıyorsunuz.
Sen cell = sheet.getRow(row);
gibi

XSSFRow row = sheet.createRow(rowIndex);

çağırmadan önce ilk olarak bir oluşturmak Ve de

Cell cell = row.createCell(cellIndex); 

gibi Cell oluşturmak fazla bilgi için bu full example görmek gerek

hala
+0

hücre 3,3 zaten oluşturuldu ve h bir değer olarak. Yine de teşekkürler ama başka bir fikrin yok mu? – dudu

+0

Bunun yerine XSSF'yi denediniz mi? Apache poi'yi sadece bir kez kullandım ve bu linke verdiğim örnek gayet iyi çalışıyor. –

+0

evet yaptım ve hepsi aynı :( android için optimize edilmiş github düzenlenmiş bir apache poi vardı ama çok daha kötü oldu, hiç herhangi bir uygulama mevcut bir excel dosyasını düzenlemek için apache poi kullanılan duydunuz mu? – dudu