2012-06-30 18 views
11

Tôi muốn tạo một bảng excel có thể chắp thêm. Giống như tôi có bốn cột stream1 stream2 stream3 stream4cách tạo excelsheet có thể nối tiếp bằng cách sử dụng java

lần đầu tiên tôi chỉ chèn dữ liệu cột đầu tiên (stream1) sau đó tôi muốn điền đầy đủ các cột khác một.

đây là đoạn code mà tôi đang sử dụng:

public void createFile(Jqueue stream1, Jqueue stream2, Jqueue stream3, Jqueue stream4) { 
    try { 

     String filename = "path"; 
     boolean alreadyExists = (new File(filename)).exists(); 

     HSSFRow rowhead = sheet1.createRow((short) 0); 
     rowhead.createCell((short) 0).setCellValue("Stream 1"); 
     rowhead.createCell((short) 1).setCellValue("Stream 2"); 
     rowhead.createCell((short) 2).setCellValue("Stream 3"); 
     rowhead.createCell((short) 3).setCellValue("Stream 4"); 


     int i = 1; 
     while (!stream1.isEmpty()) { 
      String urlstream1 = ""; 
      String urlstream2 = ""; 
      String urlstream3 = ""; 
      String urlstream4 = ""; 
      HSSFRow row = sheet1.createRow((short) i); 
      try { 
       if (stream1.size() > 0) { 
        urlstream1 = stream1.dequeue().toString(); 
       } 
      } catch (Exception ex) { 
      } 
      try { 
       if (stream2.size() > 0) { 
        urlstream2 = stream2.dequeue().toString(); 
       } 
      } catch (Exception ex) { 
      } 
      try { 
       if (stream3.size() > 0) { 
        urlstream3 = stream3.dequeue().toString(); 
       } 
      } catch (Exception ex) { 
      } 
      try { 
       if (stream4.size() > 0) { 
        urlstream4 = stream4.dequeue().toString(); 
       } 
      } catch (Exception ex) { 
      } 
      row.createCell((short) 0).setCellValue(urlstream1); 
      row.createCell((short) 1).setCellValue(urlstream2); 
      row.createCell((short) 2).setCellValue(urlstream3); 
      row.createCell((short) 3).setCellValue(urlstream4); 
      i++; 
     } 

     FileOutputStream fileOut = new FileOutputStream(filename); 
     hwb.write(fileOut); 
     fileOut.close(); 

Nhưng điều này không được gắn-thể mã. hàng dữ liệu chèn của nó theo hàng.

thx nâng cao.

Trả lời

1

Tôi cho rằng một chút thay đổi trong mã của bạn nên thực hiện.

Hãy thử thay thế

int i = 1;

như sau:

int i = sheet1.getLastRowNum() + 1;

Bạn cũng cần phải thay đổi triển khai của mình để đọc và ghi tệp một chút.