当前位置: 首页 > 知识库问答 >
问题:

Jtable在Java中转换为Excel

越学博
2023-03-14

我创建了一个注册表单,从用户那里收集数据,并将其显示到一个Jtable,然后我想允许用户按一个按钮将Jtable内容导出到excel表单。在显示表中,它可以显示所有的用户输入,但是当我导出到excel时,它只显示columnNames和第一行数据,所以我想知道我是不是做错了?

ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();

String[] columnNames = new String[] {"First Name", "Last Name", "Email", "Degree", "Year", "Event"};

Object[][] tabledata = new Object[1][6];  


    String fn = FirstName.getText();
    String ln = LastName.getText();
    String em = Email.getText();
    String re = ReEnter.getText();
    String de = Degree.getSelectedItem().toString();
    String yr = Year.getSelectedItem().toString();
    String ev = EventDate.getSelectedItem().toString();

    ArrayList<String> data = new ArrayList<String>();

    data.add(fn);
    data.add(ln);
    data.add(em);
    data.add(de);
    data.add(yr);
    data.add(ev);
    list.add(data);

    //Set fields to empty        
            FirstName.setText("");
            LastName.setText("");
            Email.setText("");
            ReEnter.setText("");
            Degree.setSelectedItem(null);
            Year.setSelectedItem(null);
            EventDate.setSelectedItem(null);

    // print data to table
            Object[][] temp = new Object[tabledata.length+1][6];
                for(int i=0;i<tabledata.length;i++){
                    for(int j=0;j<6;j++){
                        temp[i][j] = tabledata[i][j];
                    }
                temp[tabledata.length-1][0]= fn;
                temp[tabledata.length-1][1]= ln;
                temp[tabledata.length-1][2]= em;
                temp[tabledata.length-1][3]= de;
                temp[tabledata.length-1][4]= yr;
                temp[tabledata.length-1][5]= ev;
                }
            tabledata = temp;
            table.setModel(new DefaultTableModel(tabledata, columnNames));
                }
               }
   try {
        TableModel model = table.getModel();

        File file = new File("member.xls");
        FileWriter output = new FileWriter(file);


        for(int i = 0; i <model.getColumnCount(); i++){
            output.write(model.getColumnName(i) + "\t");
        }

        output.write("\n");

        for(int k=0;k<model.getRowCount();k++) {
            for(int j=0;j<model.getColumnCount();j++) {
                output.write(model.getValueAt(k,j).toString()+"\t");
            }
            output.write("\n");


        output.close();
    }
   }
    catch(Exception e) {
        e.printStackTrace();
    }

共有1个答案

酆浩邈
2023-03-14

检查括号:p

您可以在第一个for循环中调用output.close()来打印数据。这将在进入第2行及以后的行之前关闭文件。

 类似资料:
  • 我试图从JTable中检索一个值,并得到一个java.lang.NullPointer异常。下面这行似乎是问题所在。我试图让它接受对象,它是25,基本上转换为int。由于某种原因,这项简单的任务似乎极其困难或不可能完成。我查看了另一个StackOverflow用户提出的类似问题,但他从未得到有效的答复。 错误代码如下所示:creception in thread“awt-eventqueue-0”

  • 在的内部类中。 演员们在这里是怎么工作的?我在这里期待,因为我们要将一个纯超类对象转换为子类。

  • 问题内容: 我是Java的新手,想知道double转换为int cast如何工作吗?我知道,只需将低32位转换为int就很容易了,但是将double(64位)转换为int(32位)呢?来自二进制的double中的那64位是Double- precision浮点格式(Mantissa),那么它如何在内部转换为int? 问题答案: 所有这些都记录在JLS的5.1.3节中。 第一步,将浮点数转换为lon

  • 问题内容: 如何将String 列表转换为数组?以下代码返回错误。 错误: 问题答案: 你要 有关文档,请参见此处,请注意,您也可以以填充已传递数组的方式调用此方法,而不仅仅是使用它来计算要返回的类型。另请注意,也许当您打印阵列时,您更喜欢 因为那将打印实际的元素。

  • 问题内容: 我将mp3转换为wav的代码是: 但是我得到以下输出: 谁能帮我我在做什么错? 问题答案: 这里的sourceBytes表示MP3文件或WAV文件。audioFormat是您要转换的PCM格式。另外,我们需要将javazoom.com中的mp3spi.jar,tritonus_mp3.jar,jl * .jar,tritonus_share.jar放入类路径中。希望这对其他人有帮助。

  • 问题内容: 这里有人知道在Java中将csv文件转换为xls或xlsx文件的任何快速,干净的方法吗? 我已经有一些东西可以管理csv文件,并且我需要与其他程序具有额外的兼容性。 除了包名称外,示例代码始终受到人们的赞赏。 非常感谢, 贾斯汀 到目前为止,这是我的代码。我需要从行中删除返回值(“ \ n”)。我的某些单元格包含多行信息(一个列表),因此我可以在csv中使用“ \ n”来表示 单元格中