我正在尝试将 JTable 导出到 Microsoft Excel 可用的文件。
最初,我将数据写入文本文件并将扩展名设置为“.xls”
当然,这是不专业的,Excel 继续抱怨格式不正常。没错。
无论如何,现在我正在尝试将它导出到 XML 表,这样我就可以用 Excel 打开它。但是,当我尝试使用 XMLEncoder 导出它时,会打印异常,并且在 Excel 中打开时,它看起来或工作不正常。表中没有来自表的数据,而是包含有关对象和类的数据。
这是我的代码:
public static void saveToXML(JTable table, File location, String name) throws Exception{
XMLEncoder encoder;
File file = new File(location.getAbsolutePath() + "/" + name + ".xml");
encoder = new XMLEncoder(new FileOutputStream(file));
encoder.writeObject(table);
encoder.close();
}
打印的异常如下:
java.lang.InstantiationException: fbla.evaluation.window.MainWindow$2
Continuing ...
java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Continuing ...
java.lang.InstantiationException: javax.swing.plaf.basic.BasicTableHeaderUI$MouseInputHandler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement JTableHeader.removeMouseMotionListener(BasicTableHeaderUI$MouseInputHandler);
Continuing ...
java.lang.InstantiationException: fbla.evaluation.window.MainWindow$38
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement JTable.addMouseListener(MainWindow$38);
Continuing ...
java.lang.InstantiationException: javax.swing.plaf.basic.BasicTableUI$Handler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement JTable.removeMouseMotionListener(BasicTableUI$Handler);
Continuing ...
非常感谢任何帮助和见解。可能还值得一提的是,表模型是自定义的。