java快速實現匯出生成csv檔案(含註釋程式碼)
java快速實現匯出生成csv檔案(含註釋程式碼)
在java中我們一般使用poi操作匯入、匯出excel,但是poi很消耗記憶體,尤其在匯出時。這個時候我們其實可以選擇匯出生成csv檔案,因為csv本質上就是文字檔案,所以效率很高。
文字檔案 -> csv
csv,即逗號分隔檔案。要生成csv檔案,只需生成逗號分隔的txt
檔案,然後修改字尾名為.csv
即可。
生成的文字檔案:
修改字尾名後的.csv檔案:
實現程式碼
實現類
/**
* 匯出生成csv格式的檔案
* @author https://www.jb51.net/article/102607.htm
* @param titles csv格式頭文
* @param propertys 需要匯出的資料實體的屬性,注意與title一一對應
* @param list 需要匯出的物件集合
* @return
* @throws IOException
* Created 2017年1月5日 上午10:51:44
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
public static <T> String exportCsv(String[] titles,String[] propertys,List<T> list) throws IOException, IllegalArgumentException, IllegalAccessException{
File file = new File("d:\\test.csv");
//構建輸出流,同時指定編碼
OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream(file), "gbk");
//csv檔案是逗號分隔,除第一個外,每次寫入一個單元格資料後需要輸入逗號
for(String title : titles){
ow.write(title);
ow.write(",");
}
//寫完檔案頭後換行
ow.write("\r\n");
//寫內容
for(Object obj : list){
//利用反射獲取所有欄位
Field[] fields = obj.getClass().getDeclaredFields();
for(String property : propertys){
for(Field field : fields){
//設定欄位可見性
field.setAccessible(true);
if(property.equals(field.getName())){
ow.write(field.get(obj).toString());
ow.write(",");
continue;
}
}
}
//寫完一行換行
ow.write("\r\n");
}
ow.flush();
ow.close();
return "0";
}
測試類
public void test() throws IOException, IllegalArgumentException, IllegalAccessException{
String[] titles = new String[]{"ID","姓名"};
String[] propertys = new String[]{"id","name"};
List<User> list = new ArrayList<User>();
User user;
user = new User();
user.setId(1L);
user.setName("張三");
list.add(user);
user = new User();
user.setId(2L);
user.setName("李四");
list.add(user);
CsvUtil.getInstance().exportCsv(titles,propertys, list);
}
生成的檔案就是上文這兩張圖。
參考列表
相關文章
- java匯出CSV檔案Java
- PHP 匯出 CSV 格式檔案PHP
- java程式碼實現excel檔案資料匯入JavaExcel
- SQLite3 匯出 CSV 檔案SQLite
- PHP 匯出大資料 CSV 檔案PHP大資料
- 解決PHP匯出CSV檔案中文亂碼問題PHP
- 修改以前寫的合同匯入CSV檔案程式碼
- python生成CSV檔案Python
- 使用PHP原生匯出Excel和CSV檔案PHPExcel
- Mysql匯入csv檔案MySql
- Excel開啟CSV檔案出現亂碼怎麼辦?Excel開啟csv檔案出現亂碼的解決方法Excel
- office for Mac Excel匯入csv檔案亂碼MacExcel
- linux 下MySQL命令列匯出csv檔案格式LinuxMySql命令列
- ServiceNow如何匯出豎線分割的CSV檔案?
- 匯入sql檔案出現亂碼SQL
- SQLServer匯入大CSV檔案SQLServer
- java匯出Excel檔案JavaExcel
- PHP匯出大量資料,儲存為CSV檔案PHP
- MySQL直接匯出CSV檔案,並解決中文亂碼的問題MySql
- js實現使用檔案流下載csv檔案JS
- Java高階特性-註解:註解實現Excel匯出功能JavaExcel
- 基於 java 註解的 csv 檔案讀寫框架Java框架
- 匯出csv
- java模板匯出PDF檔案Java
- Django - 檢視層 - 生成CSV檔案Django
- IDEA外掛:快速刪除Java程式碼中的註釋IdeaJava
- csv跨域傳輸再生成csv檔案處理跨域
- 使用go語言對csv檔案進行解析處理,匯入匯出。Go
- Java整合FreeMarker匯出Pdf檔案Java
- JavaScript 匯出csvJavaScript
- RestCloud API低程式碼開發平臺,實現無程式碼快速釋出APIRESTCloudAPI
- 想在Java中實現Excel和Csv的匯出嗎?看這就對了JavaExcel
- Excel開啟csv檔案出現亂碼的解決辦法Excel
- **xml檔案 columnNumber: 6; 註釋中不允許出現字串 "--"。XML字串
- 隨機快速排序Java程式碼實現隨機排序Java
- spring boot + easypoi快速實現excel匯入匯出Spring BootExcel
- poi 匯出Excel java程式碼ExcelJava
- ADB匯出app到電腦生成apk檔案APPAPK