微軟的excel文件需要通過文件頭的bom來識別編碼,所以寫文件時,需要先寫入bom頭。
FileOutputStream fos = new FileOutputStream(new File("d:\\test.csv")); // 寫入bom頭
byte[] uft8bom={(byte)0xef,(byte)0xbb,(byte)0xbf}; fos.write(uft8bom); Writer writer = new BufferedWriter( new OutputStreamWriter( fos, "UTF-8")); CsvExporter csvExporter = new CsvExporter(writer); csvExporter.addColumn(new Column("company","公司")); csvExporter.addColumn(new Column("email","郵箱")); List<Map<String,String>> list = new ArrayList<Map<String,String>>(); Map<String,String> map = new HashMap<String,String>(); map.put("company", "公司1"); map.put("email", "郵箱1"); list.add(map); csvExporter.export(list);; csvExporter.close();