2016-03-19 18 views
0

Aşağıdaki kodu aldım ve bunun temel nedeni verilerimi benim tablo modelimden alıyor ve bunu bir e-tabloya koyuyor. Ancak veriyi verdikten sonra, verilerimi masamı sıralarken belirttiğim sıraya göre tutmamaktayım:Verileri excel'e dışa aktarmadan önce verin

Bu, aşağıdaki tablo satırlarını sıralayan ve yöntemi yürüten başka bir yöntemden aşağıda tanımlanmıştır: saveSingleTableAsExcel();

....... 
    sorter = new TableRowSorter<>(tableR.getModel()); 
     tableR.setRowSorter(sorter); 
     sortKeys = new ArrayList<>(); 

     int columnIndexToSort = 0; 
     sortKeys.add(new RowSorter.SortKey(columnIndexToSort, SortOrder.ASCENDING)); 

     sorter.setSortKeys(sortKeys); 
     sorter.sort(); 
       saveSingleTableAsExcel(); 

.......

I ilk kolonuyla kriteri olan modelde, aynı düzeni muhafaza nasıl
public void saveSingleTableAsExcel() throws FileNotFoundException{ 

     Map<String,TableModel> models = new HashMap<String,TableModel>(); 


     models.put("Sheet1", modelR); 

     saveTablesAsExcel(models); 
    } 



    public static void saveTablesAsExcel(Map<String,TableModel> models) throws FileNotFoundException{ 

     HSSFWorkbook wb = new HSSFWorkbook(); 

     for (String sheetName : models.keySet()){ 
      createSheet(wb, models.get(sheetName), sheetName); 
     } 
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HHmmss"); 
Calendar cal = Calendar.getInstance(); 
System.out.println(dateFormat.format(cal.getTime())); //2014/08/06 16:00:22 
     //FileOutputStream out = null; 

       FileOutputStream out = new FileOutputStream("C:\\Users\\tester.xls"); 

     try { 
      wb.write(out); 
      out.close(); 
     } catch (IOException e) { 
     } 
    } 
     /** 
    * Create a Sheet in the workbook using data from the TableModel 
    * 
    * @param wb 
    * @param model 
    * @param sheetName 
    */ 
     private static void createSheet(HSSFWorkbook wb, TableModel model, String sheetName){ 
     Sheet sheet = wb.createSheet(sheetName);  

     Row headerRow = sheet.createRow(0); 
     headerRow.setHeightInPoints(12.75f); 

     HSSFFont boldFont = wb.createFont(); 
     boldFont.setFontHeightInPoints((short)22); 
     boldFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
     HSSFCellStyle headerStyle = wb.createCellStyle(); 

     // Create the header cells 
     int numColumns = model.getColumnCount(); 
     for (int col=0; col<numColumns; col++) {  
      Cell cell = headerRow.createCell(col); 
      cell.setCellValue(model.getColumnName(col)); 
      cell.setCellStyle(headerStyle); 
     } 

     // Set the cell values 
     int numRows = model.getRowCount(); 
     for (int row=0; row<numRows; row++){  
      Row sheetRow = sheet.createRow(row+1); // account for header row (0) 

      for (int col=0; col<numColumns; col++) { 
       Cell cell = sheetRow.createCell(col); 
       Object val = model.getValueAt(row, col); 

       if (val instanceof Number){ 
        cell.setCellValue((double)val); 
       } 
       else if (val instanceof Boolean){ 
        cell.setCellValue((Boolean)val);  
       } 

       else if (val instanceof String){ 
        cell.setCellValue(((String)val)); 
       } 
       else if (val instanceof Date){ 
        cell.setCellValue((Date)val); 
       } 
          // else { 
       // cell.setCellValue(val.toString()); 
           // } 
      } 
     } 
    } 

(kolon 0): ki veri aktarır?

cevap

0

Sıralama yönteminiz, üzerine yazılmayan bir karşılaştırıcı mı yoksa eşittir yöntemi mi kullanıyor? Sıralama yöntemini görmeden en iyi tahminim bu.

+0

Sıralama talimatım, sorusumın ilk bölümünde ........ ve ...... arasındadır. – Ingram

İlgili konular