2016-07-11 5 views
1

Excelをエクスポートするためにテーブルビューからデータを反復する際に助けが必要です。ボタンを押すたびに、Excelシートのテーブルビューの最初の行データが表示されます。Tableviewからデータを反復してMicrosoft Excelにエクスポートする方法

私はあなたが、これは私のコード私は、テーブルビューと輸出のすべてのアイテムを取得することができるように反復処理する方法を知らないコードのこのセクションにEspecialy

package application; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.net.URL; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.ResourceBundle; 

import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFRow; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.ss.usermodel.RichTextString; 

import javafx.beans.property.SimpleStringProperty; 
import javafx.collections.FXCollections; 
import javafx.collections.ObservableList; 
import javafx.event.ActionEvent; 
import javafx.fxml.FXML; 
import javafx.fxml.Initializable; 
import javafx.scene.control.Button; 
import javafx.scene.control.ComboBox; 
import javafx.scene.control.DatePicker; 
import javafx.scene.control.TableColumn; 
import javafx.scene.control.TableView; 
import javafx.scene.control.TextArea; 
import javafx.scene.control.TextField; 
import javafx.scene.control.cell.PropertyValueFactory; 

public class SafeguardTrackingToolController implements Initializable { 

    @FXML 
    private TextField txtActivity; 
    @FXML 
    private TextArea txtComments; 
    @FXML 
    private ComboBox<String> cmbComponent; 

    @FXML 
    private TableColumn 
    tblComponent, 
    tblActivity, 
    tableColumnForTor, 
    tblContract, 
    tblfirst, 
    tblFinal , 
    tblBank, 
    tblDisclosure, 
    tblNema, 
    tblBudgetRe, 
    tblBudgetPro, 
    tblBegin, 
    tblComments; 

    @FXML 
    private TableView<Items> tableViewForExcel; 

     @FXML 
     private DatePicker 
    dateTor, 
    dateContract, 
    dateFirstDraft, 
    dateFinalDraft, 
    dateBank, 
    dateDisclosure, 
    dateNema, 
    dateBudget, 
    dateProvided, 
    dateImplementation; 

    @FXML 
    private Button btnAdd,btnReset 
    ,btnExcel 
    ,btnDelete; 


    private final ObservableList<Items> data=FXCollections.observableArrayList(new Items(null, null, null, null, null, null, null, null, null, null, null, null, null)); 


    @Override 
    public void initialize(URL location, ResourceBundle resources) { 
     // TODO Auto-generated method stub 

     tblComponent.setCellValueFactory(new PropertyValueFactory("Component")); 
     tblActivity.setCellValueFactory(new PropertyValueFactory("Activity")); 
     tableColumnForTor.setCellValueFactory(new PropertyValueFactory("Torr")); 
     tblContract.setCellValueFactory(new PropertyValueFactory("Contract")); 
     tblfirst.setCellValueFactory(new PropertyValueFactory("FirstDraft")); 
     tblFinal.setCellValueFactory(new PropertyValueFactory("FinalDraft")); 
     tblBank.setCellValueFactory(new PropertyValueFactory("Bank")); 
     tblDisclosure.setCellValueFactory(new PropertyValueFactory("Disclosure")); 
     tblNema.setCellValueFactory(new PropertyValueFactory("Nema")); 
     tblBudgetRe.setCellValueFactory(new PropertyValueFactory("Budget")); 
     tblBudgetPro.setCellValueFactory(new PropertyValueFactory("Provided")); 
     tblBegin.setCellValueFactory(new PropertyValueFactory("Implementation")); 
     tblComments.setCellValueFactory(new PropertyValueFactory("Comment")); 


     cmbComponent.getItems().addAll("Hi","You","Well","Me" 
       ); 


     tableViewForExcel.getItems().setAll(this.data); 
    } 


public static class Items{ 
     //the setters and getters should be of the same name with the simple string property 

     private final SimpleStringProperty Component; 
     private final SimpleStringProperty Activity; 
     private final SimpleStringProperty Torr; 
     private final SimpleStringProperty Contract; 
     private final SimpleStringProperty FirstDraft; 
     private final SimpleStringProperty FinalDraft; 
     private final SimpleStringProperty Bank; 
     private final SimpleStringProperty Disclosure; 
     private final SimpleStringProperty Nema; 
     private final SimpleStringProperty Budget; 
     private final SimpleStringProperty Provided; 
     private final SimpleStringProperty Implementation; 
     private final SimpleStringProperty Comment; 

     private Items(String Comp, String Act, 
       String Tor, String Co, 
       String FDraft, String FinalDra, 
       String Ban, String Dis, String Nem, 
       String Bud,String Pro, String Im,String Comm) { 



      this.Component = new SimpleStringProperty(Comp); 
      this.Activity = new SimpleStringProperty(Act); 
      this.Torr= new SimpleStringProperty(Tor); 
      this.Contract= new SimpleStringProperty(Co); 
      this.FirstDraft = new SimpleStringProperty(FDraft); 
      this.FinalDraft = new SimpleStringProperty(FinalDra); 
      this.Bank = new SimpleStringProperty(Ban); 
      this.Disclosure = new SimpleStringProperty(Dis); 
      this.Nema= new SimpleStringProperty(Nem); 
      this.Budget = new SimpleStringProperty(Bud); 
      this.Provided = new SimpleStringProperty(Pro); 
      this.Implementation= new SimpleStringProperty(Im); 
      this.Comment = new SimpleStringProperty(Comm); 
      //this.Torr= new SimpleStringProperty(Tor); 
     } 

     public String getComponent() { 
      return Component.get(); 
     } 

     public void setComponent(String Comp) { 
      Component.set(Comp); 
     } 


     public String getActivity() { 
      return Activity.get(); 
     } 

     public void setAcivity(String Act) { 
      Activity.set(Act); 
     } 


     public String getTorr() { 
      return Torr.get(); 
     } 

     public void setTorr(String Tor) { 
      Torr.set(Tor); 
     } 


     public String getContract() { 
      return Contract.get(); 
     } 

     public void setContract(String Co) { 
      Contract.set(Co); 
     } 


     public String getFirstDraft() { 
      return FirstDraft.get(); 
     } 

     public void setFirstDraft(String FDraft) { 
      FirstDraft.set(FDraft); 
     } 


     public String getFinalDraft() { 
      return FinalDraft.get(); 
     } 

     public void setFinalDraft(String FinalDra) { 
      FinalDraft.set(FinalDra); 
     } 


     public String getBank() { 
      return Bank.get(); 
     } 

     public void setBank(String Ban) { 
      Bank.set(Ban); 
     } 


     public String getDisclosure() { 
      return Disclosure.get(); 
     } 

     public void setDisclosure(String Dis) { 
      Disclosure.set(Dis); 
     } 


     public String getNema() { 
      return Nema.get(); 
     } 

     public void setNema(String Nem) { 
      Nema.set(Nem); 
     } 

     public String getBudget() { 
      return Budget.get(); 
     } 

     public void setBudget(String Bud) { 
      Budget.set(Bud); 
     } 


     public String getProvided() { 
      return Provided.get(); 
     } 

     public void setProvide(String Pro) { 
      Provided.set(Pro); 
     } 



     public String getImplementation() { 
      return Implementation.get(); 
     } 

     public void setImplementation(String Im) { 
      Implementation.set(Im); 
     } 


     public String getComment() { 
      return Comment.get(); 
     } 

     public void setComment(String Comm) { 
      Comment.set(Comm); 
     } 

    } 


private void write() throws FileNotFoundException, IOException{ 


    try { 
     HSSFWorkbook workbook = new HSSFWorkbook(); 
     HSSFSheet spreadsheet = workbook.createSheet("sample"); 

     HSSFRow row =null; 
     HSSFCell cell=null; 

     row= spreadsheet.createRow(1); 
     cell = row.createCell(1); 
     cell.setCellValue("First name"); 
     cell = row.createCell(2); 
     cell.setCellValue("Last NAME"); 
     cell = row.createCell(3); 
     cell.setCellValue("Email"); 




      cell = row.createCell(1); 
      cell.setCellValue(tblComponent.getCellData(1).toString()); 



      cell = row.createCell(2); 
      cell.setCellValue(tblActivity.getCellData(1).toString()); 

      cell = row.createCell(3); 
      cell.setCellValue(tableColumnForTor.getCellData(1).toString()); 

      cell = row.createCell(4); 
      cell.setCellValue(tblContract.getCellData(1).toString()); 

      cell = row.createCell(5); 
      cell.setCellValue(tblfirst.getCellData(1).toString()); 

      cell = row.createCell(6); 
      cell.setCellValue(tblFinal.getCellData(1).toString()); 

      cell = row.createCell(7); 
      cell.setCellValue(tblBank.getCellData(1).toString()); 

      cell = row.createCell(8); 
      cell.setCellValue(tblDisclosure.getCellData(1).toString()); 

      cell = row.createCell(9); 
      cell.setCellValue(tblNema.getCellData(1).toString()); 

      cell = row.createCell(10); 
      cell.setCellValue(tblBudgetRe .getCellData(1).toString()); 

      cell = row.createCell(11); 
      cell.setCellValue(tblBudgetPro.getCellData(1).toString()); 

      cell = row.createCell(12); 
      cell.setCellValue(tblBegin.getCellData(1).toString()); 

      cell = row.createCell(13); 
      cell.setCellValue(tblComments.getCellData(1).toString()); 




      //row = spreadsheet.createRow(2); 


      /*cell = row.createCell(1); 
      cell.setCellValue(tblComponent.getCellData(1).toString()); 

      cell = row.createCell(2); 
      cell.setCellValue(tblActivity.getCellData(1).toString()); 

      cell = row.createCell(3); 
      cell.setCellValue(tableColumnForTor.getCellData(1).toString()); 

      cell = row.createCell(4); 
      cell.setCellValue(tblContract.getCellData(1).toString()); 

      cell = row.createCell(5); 
      cell.setCellValue(tblfirst.getCellData(1).toString()); 

      cell = row.createCell(6); 
      cell.setCellValue(tblFinal.getCellData(1).toString()); 

      cell = row.createCell(7); 
      cell.setCellValue(tblBank.getCellData(1).toString()); 

      cell = row.createCell(8); 
      cell.setCellValue(tblDisclosure.getCellData(1).toString()); 

      cell = row.createCell(9); 
      cell.setCellValue(tblNema.getCellData(1).toString()); 

      cell = row.createCell(10); 
      cell.setCellValue(tblBudgetRe .getCellData(1).toString()); 

      cell = row.createCell(11); 
      cell.setCellValue(tblBudgetPro.getCellData(1).toString()); 

      cell = row.createCell(12); 
      cell.setCellValue(tblBegin.getCellData(1).toString()); 

      cell = row.createCell(13); 
      cell.setCellValue(tblComments.getCellData(1).toString());*/ 






     /* Row row = null; 
     Cell cell = null; 

     for (int i=0;i<jtable.getRowCount();i++) { 
      row = sheet.createRow(i); 

      for (int j=0;j<jtable.getColumnCount();j++) { 

       cell = row.createCell(j); 
       cell.setCellValue((String) jtable.getValueAt(i, j)); 
      } 
     }*/ 



     // row = spreadsheet.createRow(2); 


     FileOutputStream out = new FileOutputStream(new File("example.xlsx")); 
     workbook.write(out); 
     out.close(); 
     System.out.println("Data is wrtten Successfully"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 


@FXML 
private void onClickToAddOntheTable (ActionEvent event){ 
      tableViewForExcel.getItems().add(new Items( 
      cmbComponent.getValue().toString(), 
      txtActivity.getText(), 
      dateTor.getValue().toString(), 
      dateContract.getValue().toString(), 
      dateFirstDraft.getValue().toString(), 
      dateFinalDraft.getValue().toString(), 
      dateBank.getValue().toString(), 
      dateDisclosure.getValue().toString(), 
      dateNema.getValue().toString(), 
      dateBudget.getValue().toString(), 
      dateProvided.getValue().toString(), 
      dateImplementation.getValue().toString(), 

      txtComments.getText())); 



} 

@FXML 
private void onClickToSaveInExcel (ActionEvent event){ 
    try { 
     write(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

@FXML 
private void onClickToReset (ActionEvent event){ 
    cmbComponent.setValue(""); 
    txtActivity.clear(); 
    dateTor.setValue(null);; 
    dateContract.setValue(null); 
    dateFirstDraft.setValue(null); 
    dateFinalDraft.setValue(null); 
    dateBank.setValue(null); 
    dateDisclosure.setValue(null); 
    dateNema.setValue(null); 
    dateBudget.setValue(null); 
    dateProvided.setValue(null); 
    dateImplementation.setValue(null); 
    txtComments.clear(); 
} 



@FXML 
private void onClickToResetTable (ActionEvent event){ 
    tableViewForExcel.getItems().clear(); 

} 


} 

で言って何を取得している願っていますそれは複数のシートに優れています

cell = row.createCell(1); 
      cell.setCellValue(tblComponent.getCellData(1).toString()); 



      cell = row.createCell(2); 
      cell.setCellValue(tblActivity.getCellData(1).toString()); 

      cell = row.createCell(3); 
      cell.setCellValue(tableColumnForTor.getCellData(1).toString()); 

      cell = row.createCell(4); 
      cell.setCellValue(tblContract.getCellData(1).toString()); 

      cell = row.createCell(5); 
      cell.setCellValue(tblfirst.getCellData(1).toString()); 

      cell = row.createCell(6); 
      cell.setCellValue(tblFinal.getCellData(1).toString()); 

      cell = row.createCell(7); 
      cell.setCellValue(tblBank.getCellData(1).toString()); 

      cell = row.createCell(8); 
      cell.setCellValue(tblDisclosure.getCellData(1).toString()); 

      cell = row.createCell(9); 
      cell.setCellValue(tblNema.getCellData(1).toString()); 

      cell = row.createCell(10); 
      cell.setCellValue(tblBudgetRe .getCellData(1).toString()); 

      cell = row.createCell(11); 
      cell.setCellValue(tblBudgetPro.getCellData(1).toString()); 

      cell = row.createCell(12); 
      cell.setCellValue(tblBegin.getCellData(1).toString()); 

      cell = row.createCell(13); 
      cell.setCellValue(tblComments.getCellData(1).toString()); 

ヘルプが必要ですか?

+0

を使用し、以下を使用しますか? –

答えて

0

各行に新しいHSSFRow()個のオブジェクトを作成する必要があります。今は、ただ1つの行を作成し、最初の行データをその行に渡します。だからこそ、あなたはあなたの最初の行だけを見ているのです。ループを使用してtableRowごとに新しいHSSFRowsを作成します。

HSSFRow row =null; 

int i=1; 
for(Items item: tableViewForExcel.getItems()){ 
     row= spreadsheet.createRow(i); 
     row.createCell(1).setCellValue(item.getComponent); 
     //.... add other column data as well 
     i++; 
} 

か、意味一覧表示次

HSSFRow row =null; 

     for(int i=0;i<tableViewForExcel.getItems().size();i++){ 
      row= spreadsheet.createRow(i);   
      for(int j=0; j< tableViewForExcel.getColumns().size();j++) {     
       if(tableViewForExcel.getColumns().get(j).getCellData(i) != null) { 
        row.createCell(j).setCellValue(tableViewForExcel.getColumns().get(j).getCellData(i).toString()); 
       }else{ 
        row.createCell(j).setCellValue(""); 
       } 
      } 
     } 
+0

素晴らしいそれはありがとうございました!!! :)) –

関連する問題