2016-04-11 16 views
0

Bir sayacı olan bir program yazıyorum ve bu sayaca dayalı olarak Excel'de satırlar oluşturmanız gerekir.Daha önce nerede soldan bir sayaç başlatın

Bu, her çalıştırdığım zaman, 0'dan başlar. Aşağıda benim kod

int counter = 0; 
     if (ext.contains("xls")) { 
      int result = appendDataToExcel(file, workbook, rowCount, counter); 
      System.out.println(result); 
     } 

private static int appendDataToExcel(File file, XSSFWorkbook workbook, int rowCount, int counter) throws Exception { 
     String path = file.getAbsolutePath(); 
     FileInputStream fin = new FileInputStream(new File(path)); 
     XSSFWorkbook wb = new XSSFWorkbook(fin); 
     XSSFSheet sheet1 = wb.getSheetAt(0); 
     int noOfRows = sheet1.getPhysicalNumberOfRows(); 
     XSSFSheet sheet = workbook.getSheetAt(0); 
     short lastCell; 
     Cell cell; 
     XSSFRow row; 
     lastCell = workbook.getSheetAt(0).getRow(0).getLastCellNum(); 
     for (int i = 0; i < noOfRows; i++) { 
      row = sheet.getRow(i); 
      cell = row.createCell(lastCell); 
      cell.setCellValue(sheet1.getRow(i).getCell(1).toString()); 
      counter += 1; 
     } 
     wb.close(); 
     fin.close(); 
     return counter; 
    } 
İşte result

doğru değeri gösteriyor, ama nasıl bir parametre olarak result kullanabilirsiniz.

İlk dosyada oluşturulacak 10 satır ve saniyede 20 tane var.

Burada, şu anda 10 satır oluşturuluyor ve sonraki 20, ekleme yerine bir önceki yerine geçiyor. Ben sayacında result ile ve benim for-loop yılında güncellenir bir mantık arıyorum

Ben

for(int i= counter; i<rowCount;i++){ 
//My code 
} 

bana bunu düzeltmek nasıl bildirin lütfen kullanabilirsiniz.

Teşekkür

+0

sizin 'int sayaç = 0 altında olup olmadığını nasıl;' hatta denilen ? Onu çevreleyen yöntem nedir? Nasıl mulitple kez denir? Arttırılmış sayacı geri dönüş değerinden elde etmek istiyorsanız, sadece yeni bir int oluşturmak yerine 'counter = appendDataToExcel' yapın ... – OliPro007

cevap

0

Statik sayacı yapmak deneyebilirsiniz: senin döngüde sonra

static int counter = 0; 

rowCount+=counter; 
for(int i= counter; i<rowCount;i++){ 
//My code 
}