2017-05-16 15 views
0
ここ

データのJFrameを介して入力されたを使用してExcelにそれぞれのフィールドに保存されます。書き込みデータは、Java ApacheのPOI

public class Customer { 

private String name; 
private String Email; 
private String Address; 
private String Phone; 


public Customer(String name, String email, String address, String phone) { 
    super(); 
    this.name = name; 
    Email = email; 
    Address = address; 
    Phone = phone; 


} 

public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name = name; 
}... 

は、データをCustomer.classからデータを取得するためにsopposedされ、このクラスを使用してExcelファイルに渡されます。

public class C { 
public static void main() { 

    try { 
     File file = new File("C:\\Users\\Sumuel\\Desktop\\Query.xls"); 

     HSSFWorkbook workbook = new HSSFWorkbook(); 
     HSSFSheet sheet = workbook.createSheet("C.info"); 
     //Create Heading 
     Row rowHeading = sheet.createRow(0); 
     rowHeading.createCell(0).setCellValue("Name"); 
     rowHeading.createCell(1).setCellValue("Email"); 
     rowHeading.createCell(2).setCellValue("Address"); 
     rowHeading.createCell(3).setCellValue("Phone"); 

     for (int i = 0; i < 4; i++){ 
      CellStyle styleHeading = workbook.createCellStyle(); 
      Font font = workbook.createFont(); 
      font.setBold(true); 
      styleHeading.setFont(font); 
      rowHeading.getCell(i).setCellStyle(styleHeading); 
     } 

     for(int i = 0; i<4; i++){ 
      sheet.autoSizeColumn(i); 
     } 

     Customer c1; 

     Row custInfo = sheet.createRow(1); 
     custInfo.createCell(0).setCellValue(c1.getName()); 
     custInfo.createCell(1).setCellValue(c1.getEmail()); 
     custInfo.createCell(0).setCellValue(c1.getAddress()); 
     custInfo.createCell(1).setCellValue(c1.getPhone()); 

     FileOutputStream out = new FileOutputStream(new File("C:\\Users\\Sumuel\\Desktop\\Query.xls")); 
     workbook.write(out); 
     out.close(); 
     workbook.close(); 
     System.out.println("file written"); 

    } catch (Exception e) { 
     System.out.println(e.getMessage()); 
    } 

} 

} 

私の主な問題は、1つのクラスからExcelシートに正しくデータを渡し、完了したらそのクラスを呼び出して実行することです。 何か助けていただければ幸いです。

+3

問題がある場合は、ここをクリックしてください。 –

+0

c1に初期値なしで 'Customer c1;'を使用していて、それを使用して値を取得すると、==> nullポインタ例外、あるタイプの顧客の価値をこの 'c1'に渡す必要があります –

+0

@TuyenNguyen、あなたはより具体的なことができますか(まだまだ新しいですか) –

答えて

0
、あなたのactionPerformedメソッドに次に機能に public void createWorkbook(File filename, Collection<Customer> customers)

をExcelファイルを作成し、顧客を書き込み、あなたのコードを移動し、あなたが行ったように、入力フィールドを使用してCustomerオブジェクトを作成し、その顧客を追加

顧客のコレクションへのオブジェクト。このコレクションをJFrameにアクセス可能にします。

JFrameにExcelにエクスポートボタンを追加し、そのボタンのメソッドでcreateWorkbook(File, Collection<Customer>)を呼び出します。

複数の顧客をExcelファイルに保存すると誤って考えた場合は、コレクションと2番目のボタンのビジネスは無視してください。

ただし、複数の顧客を含むファイルを作成する場合は、Excelファイルに書き込むデータを蓄積し、一度に書き込むことをお勧めします。これにより、不要なI /うちとなど、それを使用して、アプリケーション間で変更されたファイルを心配する、最初の空白行はへの書き込みがある場所を検出するためのコードを記述する必要がなくなり

c = new Connect(); 
c.createWorkbook(filename, customer); 
をやってからあなたを停止する何

c.main()に電話する代わりに、

関連する問題