Java操作Execl在比較複雜的情況下如:需要有精緻的格式,且有多個Sheet表格的時候並沒有太完美的解決方案,將Execl檔案另存新檔XML格式,然後像操作文字檔一樣操作Execl是一種不錯的解決方案!
但具體操作的時候遇見使用JAVA編輯後儲存的檔案內容與Execl轉存的內容一模一樣,但是就是用execl打不開的情況,execl轉存的xml在eclipse中查看時UTF-8格式,JAVA產生的XML檔案使用普通的文字編輯器開啟無亂碼,但是放在eclipse中出現亂碼現象,應該是JAVA產生的XML檔案的編碼問題!
一開始使用FileWriter無法控制儲存檔案的格式,改為使用OutputStreamWriter,問題解決
Configuration config = FreeMarkerUtil.getConfiguration(TestSaveAs.class, "template");Template template = config.getTemplate("test.xml");File file = new File("c:\\test.xml");Map root = new HashMap();Writer writer = new FileWriter(file);template.process(root, writer);writer.flush();writer.close();
最終代碼:
Configuration config = FreeMarkerUtil.getConfiguration(TestSaveAs.class, "template");Template template = config.getTemplate("test.xml");File file = new File("c:\\test.xml");Map root = new HashMap();Writer writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); template.process(root, writer);writer.flush();writer.close();