参考博客:http://www.cnblogs.com/mingforyou/p/4103132.html

导入jar包javacsv.jar

链接:http://pan.baidu.com/s/1i5IDQ1R 密码:mycm

<!--导出csv-->
<!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv -->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>

新建工具类;

public class ExportCSV {
/**
* CSV文件生成方法
* @param head
* @param dataList
* @param outPutPath
* @param filename
* @return
*/
public static File createCSVFile(List<Object> head, List<List<Object>> dataList,
String outPutPath, String filename) { File csvFile = null;
BufferedWriter csvWtriter = null;
try {
csvFile = new File(outPutPath + File.separator + filename + ".csv");
File parent = csvFile.getParentFile();
if (parent != null && !parent.exists()) {
parent.mkdirs();
}
csvFile.createNewFile(); // GB2312使正确读取分隔符","
csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
csvFile), "GB2312"), 1024);
// 写入文件头部
writeRow(head, csvWtriter); // 写入文件内容
for (List<Object> row : dataList) {
writeRow(row, csvWtriter);
}
csvWtriter.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
csvWtriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return csvFile;
}
/**
* 写一行数据方法
* @param row
* @param csvWriter
* @throws IOException
*/
private static void writeRow(List<Object> row, BufferedWriter csvWriter) throws IOException {
// 写入文件头部
for (Object data : row) {
StringBuffer sb = new StringBuffer();
String rowStr = sb.append("\"").append(data).append("\",").toString();
csvWriter.write(rowStr);
}
csvWriter.newLine();
}
public File createCSVFile(HttpServletRequest request,ResultSet rs,Object[] head,String fileNames,String outPutPath) throws Exception{ // 设置表格头
List<Object> headList = Arrays.asList(head);
// 设置数据
List<List<Object>> dataList = new ArrayList<List<Object>>();
List<Object> rowList = null;
while (rs.next()) {
rowList = new ArrayList<Object>();
for (int i = 0; i < head.length; i++) {
rowList.add(rs.getString(i+1));
}
dataList.add(rowList);
}
// 导出文件路径
//String downloadFilePath = "C:" + File.separator + "系统日志" + File.separator + "download" + File.separator;
// String downloadFilePath = "C:" + File.separator;
// // 导出文件名称
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String dateNowStr = sdf.format(d);
// String fileName = "导出操作日志数据" + dateNowStr;
fileNames = fileNames+dateNowStr;
// 导出CSV文件
File csvFile = createCSVFile(headList, dataList, outPutPath, fileNames);
// File csvFile = createCSVFile(headList, dataList, downloadFilePath, fileNames); return csvFile;
} 2.。class 调用 csv构造文件
             rs = userList(conn, sql);// 得到结果集
// 得到下载路径start
JFileChooser jfc=new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
jfc.showDialog(new JLabel(), "选择");
File file=jfc.getSelectedFile();
// System.out.println("文件夹:"+file.getAbsolutePath());
String outPutPath = file.getAbsolutePath();
// 得到下载路径end // 这个是导出csv文件start
Object[] head ={ "用户名", "操作时间", "操作模块", "操作内容" };// 标题
ExportCSV exportCsv = new ExportCSV();
// String outPutPath="C:";
exportCsv.createCSVFile(request, rs, head, "导出操作日志数据",outPutPath);
// 这个是导出csv文件end //这个是导出excel start
// Workbook wb = new HSSFWorkbook();
// String headers[] = { "用户名", "操作时间", "操作模块", "操作内容" };// 标题
// fillExcelData(rs, wb, headers);
// export(response, wb, "导出操作日志数据.xls");
//这个是导出excel end

  

最新文章

  1. google关于ssh key的解释(转)转的google的wiki的
  2. SQL2005:SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法
  3. java 常用concurrent类
  4. 转载 在 Linux 虚拟机中手动安装或升级 VMware Tools
  5. 学习Python编程的11个资源
  6. ecshop用户中心订单详情增加快递单物流信息查询显示的功能
  7. 问题.NET访问 IIS 元数据库失败。
  8. (转)php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
  9. 深入理解ASP.NET MVC Day1
  10. [leetcode-629-K Inverse Pairs Array]
  11. Maven 如何发布 jar 包到 Nexus 私库
  12. 008.Docker Flannel+Etcd分布式网络部署
  13. C#高级编程----错误和异常的总结
  14. MPI之聚合通信-Scatter,Gather,Allgather
  15. ios的一些知识点
  16. python 库 Numpy 中如何求取向量范数 np.linalg.norm(求范数)(向量的第二范数为传统意义上的向量长度),(如何求取向量的单位向量)
  17. php实现图片base64编码解码
  18. SVN主从高可用
  19. ST表略解
  20. Java 的编译和运行机制

热门文章

  1. Java代码实现文件上传(转载)
  2. 冒泡法排序参考(Java)
  3. python中函数定义之实参、形参
  4. TUN/TAP/VETH
  5. syslog命令
  6. 前端用户体验优化: JS &amp; CSS 各类效果代码段
  7. 手动搭建redis集群(3台)
  8. Django2.0+小程序技术打造微信小程序助手百度云
  9. LeetCode(110) Balanced Binary Tree
  10. ZZULIoj 1912 小火山的爱情密码