2016-03-21 16 views
0

Çok büyük bir liste var anahtar temelli kayıt var, ben 'CellReference' kullandım, sadece başka bir yolu verimli şekilde bilmek istiyorum, çünkü ben bir şey 'CellReference' güncellemek için daha fazla zaman ayırın.Verileri .xls veya .xlsx dosyasında güncelleştirin

 Column/value 

     B9  35 
     B8  63 
     B7  11 
     B6  36 
     B5  87 
     B14 3066 
     B13 5025 

Ve Yineleme her çifti için My kodudur: - -:

Veriler bu yolu gibi var

 Map<String,Integer> result= getMap();//getting Column and value 
     Iterator it = result.entrySet().iterator(); 
     CellReference reference=null; 
      while (it.hasNext()) { 
       Map.Entry pair = (Map.Entry) it.next(); 
       reference = new CellReference(pair.getKey().toString()); 
       Row row = spreadsheet.getRow(reference.getRow()); 
       Cell cell = null; 
       if (row != null) { 
        cell = row.getCell(ref.getCol()); 
       } 
      if (cell != null) 
       cell.setCellValue(Double.parseDouble(pair.getValue().toString())); 
     } 
+0

- Prospektüsler için -> diğer yol etkili şekilde mümkündür. –

+0

Etkili bir yöntem istiyorum? – Vinod

cevap

0

vadeli verimli burada oldukça belirsizdir, ama aynı zamanda

olarak deneyebilirsiniz
  List<String> dataList = new ArrayList<String>(); 
    List<Integer> rowNo=new ArrayList<Integer>(); 
    List<Integer> colNo=new ArrayList<Integer>(); 
    int countRow=1; 
    int countCol=1; 
    try { 

     FileInputStream fis = new FileInputStream(file); 
    // System.out.println("loadinggg !!!"); 
     HSSFWorkbook wb = new HSSFWorkbook(fis); 
     HSSFSheet sheet = wb.getSheetAt(0); 
     Iterator<Row> rowIterator = sheet.iterator(); 

     while (rowIterator.hasNext()) { 
      rowNo.add(countRow); 
      Row row = rowIterator.next(); 
      Iterator<Cell> cellIterator = row.cellIterator(); 
      while (cellIterator.hasNext()) { 
       cell = cellIterator.next(); 
       switch (cell.getCellType()) { 
       case Cell.CELL_TYPE_STRING: { 
        dataList.add(cell.getStringCellValue()); 
        cell.setCellValue("iterate through your own list here"); 
       } 
        break; 
       } 
      } 
     } 
+0

Ayrıca, bazı durumlarda verimli hale getirilmeden önce okunabilir bir pürüzsüz kod gereksinimi de vardır. –

+0

Teşekkürler, ancak bu şekilde Nth sütunu eklemeyi denediğimde tüm sütunu yinelemeli. – Vinod

+0

Pozisyonu parametre olarak kullanabilir veya konum toplamasında yineleyin ve bunun yerine kullanın! –

İlgili konular