JAVA List集合导出为CSV
来源:互联网 发布:查看数据库版本 oracle 编辑:程序博客网 时间:2024/06/11 08:17
由于项目中使用到了该部分功能,所以将代码贴出来,给后来人参考
1.下载Jar包
该方法需要调用一个名为javacsv.jar的包,下载地址为
http://central.maven.org/maven2/net/sourceforge/javacsv/javacsv/2.0/javacsv-2.0.jar
2.代码部分
public static <T> void writeCSV(Collection<T> dataset,String csvFilePath,String[] csvHeaders) { try { // 定义路径,分隔符,编码 CsvWriter csvWriter = new CsvWriter(csvFilePath, ';', Charset.forName("UTF-8")); // 写表头 csvWriter.writeRecord(csvHeaders); // 写内容 //遍历集合 Iterator<T> it = dataset.iterator(); while (it.hasNext()) { T t = (T) it.next(); //获取类属性 Field[] fields = t.getClass().getDeclaredFields(); String[] csvContent=new String[fields.length]; for (short i = 0; i < fields.length; i++) { Field field = fields[i]; String fieldName = field.getName(); String getMethodName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); try { Class tCls = t.getClass(); Method getMethod = tCls.getMethod(getMethodName,new Class[] {}); Object value = getMethod.invoke(t, new Object[] {}); if (value == null) { continue; } //取值并赋给数组 String textvalue=value.toString(); csvContent[i]=textvalue; //System.out.println("fieldname="+fieldName+"||getMethodname="+getMethodName+"||textvalue="+textvalue); }catch (Exception e) { e.getStackTrace(); } } //迭代插入记录 csvWriter.writeRecord(csvContent); } csvWriter.close(); System.out.println("<--------CSV文件写入成功-------->"); } catch (IOException e) { e.printStackTrace(); } }
3.测试代码
**javaBean类**
public class StudentForTest{ private int age; private String email; private String name; private String phone; private String sex; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; }}
Main方法
public static void main(String[] args) { StudentForTest s=new StudentForTest(); s.setAge(21); s.setEmail("11"); s.setName("yaochongwei"); s.setPhone("157"); s.setSex("1"); StudentForTest s1=new StudentForTest(); s1.setAge(22); s1.setEmail("11"); s1.setName("yaochongwei"); s1.setPhone("157"); s1.setSex("0"); List<StudentForTest> l=new ArrayList<StudentForTest>(); l.add(s); l.add(s1); String csvFilePath = "D://yaochongwei.csv"; String[] csvHeaders = { "年龄", "邮件", "姓名","手机","性别" }; writeCSV(l,csvFilePath,csvHeaders); }
阅读全文
0 0
- JAVA List集合导出为CSV
- java 导出csv格式(支持list的实体类)
- h2导出为csv,csv导入h2
- JAVA 导出CSV代码
- java导出CSV文件
- java导出CSV文件
- java 导出csv文件
- java导出CSV文件
- java 导出csv文件
- java 导出CSV
- java csv 导出操作
- Java 导出 .csv 文件
- java导出csv
- java导出csv文件
- Java导出CSV文件
- 动态导出为csv文件
- 批量导出为csv文件
- DataTable 导出为csv格式文件
- Redis常用命令(5)SortKey类型
- SuperMap iObjects .NET批量更新
- eID你了解多少?
- wx开发的配置
- python爬虫过程报错:http.client.RemoteDisconnected: Remote end closed connection without response
- JAVA List集合导出为CSV
- Mysql 获得当前时间 及计算时间 的函数
- 9/28LINK
- 贪心算法总结
- celery使用笔记
- windows下c++读取一个目录下的所有文件
- Reverse Integer
- 在oc项目中添加swift文件,并设置oc-swift混编
- fiddler根证书安装