java生成csv文件
package
com.sunyainfo.sunyacloud.util;
import
org.apache.commons.beanutils.BeanUtils;
import
java.io.*;
import
java.util.*;
/**
* Created by zhanglei on 2017/7/26.
*/
public class
CsvUtil {
public
static void main(String[] args) {
List exportData =
new
ArrayList<Map>();
Map row1 =
new
LinkedHashMap<String, String>();
row1.put("1",
"11");
row1.put("2",
"12");
row1.put("3",
"13");
row1.put("4",
"14");
exportData.add(row1);
//
LinkedHashMap
map = new
LinkedHashMap();
map.put("1",
"第一列");
map.put("2",
"第二列");
map.put("3",
"第三列");
map.put("4",
"第四列");
String path =
"C:/Users/xxx/Desktop/new";
String fileName =
"測試文件生成";
CsvUtil.createCSVFile(exportData,
map, path, fileName);
}
/**
* 生成爲CVS文件
*
*
@param
exportData
*
源數據List
*
@param
map
*
csv文件的列表頭map
*
@param
outPutPath
*
文件路徑
*
@param
fileName
*
文件名稱
*
@return
*/
@SuppressWarnings("rawtypes")
public
static File createCSVFile(List exportData, LinkedHashMap map, String outPutPath, String fileName) {
File csvFile =
null;
BufferedWriter csvFileOutputStream =
null;
try
{
csvFile =
new
File(outPutPath+File.separator+fileName+".csv");
System.out.println("csvFile:"
+ csvFile.getAbsolutePath());
//
UTF-8使正確讀取分隔符","
csvFileOutputStream
= new
BufferedWriter(new
OutputStreamWriter(new
FileOutputStream(csvFile),
"UTF-8"),
1024);
//
寫入文件頭部
for
(Iterator propertyIterator = map.entrySet().iterator(); propertyIterator.hasNext();) {
java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator.next();
csvFileOutputStream
.write("\""
+ (String) propertyEntry.getValue() !=
null
? (String) propertyEntry
.getValue() :
""
+
"\"");
if
(propertyIterator.hasNext()) {
csvFileOutputStream.write(",");
}
}
csvFileOutputStream.newLine();
//
寫入文件內容
for
(Iterator iterator = exportData.iterator(); iterator.hasNext();) {
Object row = (Object) iterator.next();
for
(Iterator propertyIterator = map.entrySet().iterator(); propertyIterator.hasNext();) {
java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator.next();
csvFileOutputStream.write((String) BeanUtils.getProperty(row,
(String) propertyEntry.getKey()));
if
(propertyIterator.hasNext()) {
csvFileOutputStream.write(",");
}
}
if
(iterator.hasNext()) {
csvFileOutputStream.newLine();
}
}
csvFileOutputStream.flush();
}
catch
(Exception e) {
e.printStackTrace();
}
finally
{
try
{
csvFileOutputStream.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
return
csvFile;
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.