使用java apache poi将数据从JFrame写入excel

时间:2017-05-16 22:37:46

标签: java excel jframe apache-poi

此处数据是通过JFrame - JText字段输入的,该字段旨在保存到Excel表格中

"Unbalanced calls to begin/end appearance transitions for UIViewController"

然后传递给Customer.class以保存在各自的字段中。

public DetailsPanel(){    
    final JTextField insertName = new JTextField(20);
    final JTextField insertEmail = new JTextField(20);
    final JTextField insertPhone = new JTextField(20);
    final JTextField insertAddress = new JTextField(20);
...
    Create = new JButton("Create");

    Create.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            String name = insertName.getText();
            String email = insertEmail.getText();
            String phone = insertPhone.getText();
            String address = insertAddress.getText();               

            Customer C = new Customer(name, email, address, phone);
            C.setName(name);
            C.setEmail(email);
            C.setAddress(address);
            C.setPhone(phone);

            Connect c = new Connect();
            c.main();
        }
    });

然后使用此类将数据传递到excel文件,该类用于从Customer.class检索数据。

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;
}...

我的主要问题是将数据从一个类正确传递到excel表,并在完成时调用/运行该类。  非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

移动创建Excel文件的代码,并将客户写入函数public void createWorkbook(File filename, Collection<Customer> customers)

然后在actionPerformed方法上,使用输入字段创建Customer对象,并将该Customer对象添加到Customers of Customers。使此集合可供JFrame访问。

然后在JFrame上添加导出到Excel按钮,并在该按钮上的createWorkbook(File, Collection<Customer>)方法中调用actionPerformed

如果我错误地认为你想将多个客户保存到Excel文件,那么请忽略Collection和2nd button业务。

但是,如果您要创建一个包含多个客户的文件,您将需要累积数据以写入Excel文件。并将其全部写入一次。这样可以避免不必要的I / Of并且必须编写代码来检测第一个空白行要写入的位置,担心在使用它的应用程序之间修改文件等等。

阻止你做什么

c = new Connect();
c.createWorkbook(filename, customer);

代替你拨打c.main()的地方?