我試圖將JTable導出到Microsoft Excel可用的文件。將JTable導出到XML文件
本來,我寫數據到一個文本文件,並設置擴展名爲「.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 ...
任何幫助和洞察力是極大的讚賞。可能還值得一提的是表模型是一個自定義模型。
謝謝你,但不完全的答案我要找的。我想讓XMLEncoder工作。 – Brayden
您可以使用'XMLDecoder'讀取生成的XML,例如[http://javaprogramming.language-tutorial.com/2012/10/convert-java-object-to-xml-and-convert.html],但Excel不能;更多[這裏](http://stackoverflow.com/a/5898529/230513)。 – trashgod
有沒有辦法使用Java導出JTable,以便Excel可以讀取它?這是一個相當重要的功能,但由於授權問題,我寧願不使用API。 – Brayden