package com.cib.cap4j.cfn.util; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.List; /** * * CSV文件导出工具类 * * Created on 2014-08-07 * @author * @reviewer */ public class CSVUtils { /** * 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(); } }
// Excel导出 function exportExcel(e) { // csv导出 var params = ""; params += "khxm=" + $J.getbyName("khxm").getValue(); params += "&zjlx=" + $J.getbyName("zjlx").getValue(); params += "&zjhm=" + $J.getbyName("zjhm").getValue(); params += "&sjhm=" + $J.getbyName("sjhm").getValue(); params += "&khlx=" + $J.getbyName("khlx").getValue(); params += "&fxdj=" + $J.getbyName("fxdj").getValue(); params += "&zhdh=" + $J.getbyName("zhdh").getValue(); params += "&lczh=" + $J.getbyName("lczh").getValue(); params += "&gsjg=" + $J.getbyName("gsjg").getValue(); params += "&gsjl=" + $J.getbyName("gsjl").getValue(); params += "&gszk=" + $J.getbyName("gszk").getValue(); params += "&yxbl=" + $J.getbyName("yxbl").getValue(); window.location = "<%= request.getContextPath() %>/khxxCx/exportExcel.do?" + params; }
public @ResponseBody void exportExcel(HttpServletRequest request, HttpServletResponse response, KhxxCxVO vo) throws IOException{ File csvFile = createCSVFile(request,vo); BufferedInputStream bis = null; BufferedOutputStream bos = null; response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(csvFile.getName(), "UTF-8")); response.setHeader("Content-Length", String.valueOf(csvFile.length())); bis = new BufferedInputStream(new FileInputStream(csvFile)); bos = new BufferedOutputStream(response.getOutputStream()); byte[] buff = new byte[2048]; while (true) { int bytesRead; if (-1 == (bytesRead = bis.read(buff, 0, buff.length))) break; bos.write(buff, 0, bytesRead); } bis.close(); bos.close(); } public File createCSVFile(HttpServletRequest request,KhxxCxVO vo){ vo.setKhxm(StringUtil.formatDbLikeValue(vo.getKhxm())); String yybh = ContextUtil.getLoginUser().getUserId(); String cur_ssjg = ContextUtil.getLoginUser().getUserUnit(); String unitPath = ContextUtil.getLoginUser().getUnitPath(); IPStaffVO staff = ipStaffService.findStaffByKey(yybh); String yhlx = staff.getYhlx(); if((!cur_ssjg.equals(unitPath)) && yhlx.equals("2")){ vo.setCur_path(StringUtil.formatDbLeftLikeValue(unitPath.trim())); }else if(yhlx.equals("1")){ vo.setCur_ssjg(cur_ssjg.trim()); } // 设置表格头 Object[] head = {"客户姓名", "证件类型", "证件号码", "银行账号", "理财账号", "客户类型", "风险等级", "归属状况", "归属机构", "客户经理", "营销比例(%)" }; List<Object> headList = Arrays.asList(head); List<KhxxCxVO> list = iKhxxCxService.findAllInfos(vo, Integer.MAX_VALUE, 0); // 码表取出证件类型 Map<String, String> zjlx_map = new HashMap<String, String>(); List<IPCodeInfoVO> zjlx_list = directoryService.findInfoListByTypeCode("zjlx", null); if ((zjlx_list != null) && (zjlx_list.size() > 0)){ for (Iterator i$ = zjlx_list.iterator(); i$.hasNext(); ) { IPCodeInfoVO ipci_vo = (IPCodeInfoVO)i$.next(); zjlx_map.put(ipci_vo.getMblxbh(), ipci_vo.getMbtmz()); } } Map<String, String> khlx_map = new HashMap<String, String>(); List<IPCodeInfoVO> khlx_list = directoryService.findInfoListByTypeCode("khlx", null); if ((khlx_list != null) && (khlx_list.size() > 0)){ for (Iterator i$ = khlx_list.iterator(); i$.hasNext(); ) { IPCodeInfoVO ipci_vo = (IPCodeInfoVO)i$.next(); khlx_map.put(ipci_vo.getMblxbh(), ipci_vo.getMbtmz()); } } Map<String, String> fxdj_map = new HashMap<String, String>(); List<IPCodeInfoVO> fxdj_list = directoryService.findInfoListByTypeCode("fxdj", null); if ((fxdj_list != null) && (fxdj_list.size() > 0)){ for (Iterator i$ = fxdj_list.iterator(); i$.hasNext(); ) { IPCodeInfoVO ipci_vo = (IPCodeInfoVO)i$.next(); fxdj_map.put(ipci_vo.getMblxbh(), ipci_vo.getMbtmz()); } } Map<String, String> gszk_map = new HashMap<String, String>(); List<IPCodeInfoVO> gszk_list = directoryService.findInfoListByTypeCode("gszk", null); if ((gszk_list != null) && (gszk_list.size() > 0)){ for (Iterator i$ = gszk_list.iterator(); i$.hasNext(); ) { IPCodeInfoVO ipci_vo = (IPCodeInfoVO)i$.next(); gszk_map.put(ipci_vo.getMblxbh(), ipci_vo.getMbtmz()); } } // 设置数据 List<List<Object>> dataList = new ArrayList<List<Object>>(); List<Object> rowList = null; for (int i = 0; i < list.size(); i++) { rowList = new ArrayList<Object>(); KhxxCxVO kc_vo = list.get(i); //rowList.add(i + 1); rowList.add(kc_vo.getKhxm()); rowList.add(StringUtil.nullToSpace(zjlx_map.get(kc_vo.getZjlx().trim()))); // String zjhm= kc_vo.getZjhm(); // System.out.println("zjhm----------"+zjhm); // DecimalFormat df = new DecimalFormat("#");//转换成整型 // String zjhm_2 = df.format(zjhm); // System.out.println("zjhm2----------"+zjhm_2); // String zjhm_str = String.format("%.0f",kc_vo.getZjhm()); // System.out.println("zjhmstr----------"+zjhm_str); rowList.add(kc_vo.getZjhm()); rowList.add(kc_vo.getZhdh()); rowList.add(kc_vo.getLczh()); rowList.add(StringUtil.nullToSpace(khlx_map.get(kc_vo.getKhlx().trim()))); rowList.add(StringUtil.nullToSpace(fxdj_map.get(kc_vo.getFxdj().trim()))); rowList.add(StringUtil.nullToSpace(gszk_map.get(kc_vo.getGszk().trim()))); rowList.add(kc_vo.getGsjgmc()); rowList.add(kc_vo.getGsjl()); rowList.add(kc_vo.getYxbl()); //String cjsj = DateTimeUtil.formatDateTime(kc_vo.getCjsj()); //rowList.add(cjsj); dataList.add(rowList); } // 导出文件路径 String downloadFilePath = "C:" + File.separator + "cap4j" + File.separator + "download" + File.separator; IPCodeInfoVO codeInfoVO = directoryService.findInfoByTypeCodeAndInfoCode( CFNConstants.PLATFORM_CONFIG, CFNConstants.PLATFORM_CONFIG_DOWNLOAD_PATH); if (codeInfoVO != null && !StringUtils.isEmpty(codeInfoVO.getMbtmz())) { downloadFilePath = codeInfoVO.getMbtmz(); } // String downloadFilePath = request.getSession().getServletContext().getRealPath("/exportload"); // 导出文件名称 String datetimeStr = DateTimeUtil.formatDate(new Date(), "yyyyMMddHHmmss"); String fileName = "客户列表_" + datetimeStr; // String fileName = ""; // try { // fileName = URLDecoder.decode("khxxCx_list","utf-8"); // } catch (Exception e) { // e.printStackTrace(); // } // 导出CSV文件 File csvFile = CSVUtils.createCSVFile(headList, dataList, downloadFilePath, fileName); return csvFile; }
相关推荐
java导出数据时,如果对数据格式没有特殊要求,为了提高效率可以导出CSV格式的文件,导出CSV文件不支持多个sheet页。
java 导出csv格式文件(支持实体类输入)
在Java编程环境中,导出CSV(逗号分隔值)文件并将其压缩成ZIP格式是一项常见的任务,特别是在处理大量数据时。CSV文件因其简洁、通用的格式,常用于数据交换和存储。本教程将深入讲解如何实现这个过程,并提供前...
2.生成csv,中文无乱码,数据不会科学计数法; 3.支持大数据下载; 4.后台服务java语言实现,前端不限制; 5.前端代码: [removed]void(0)" class="layui-btn"> <i class="fa fa-refresh"> 导出Excel ...
标题中的“java 大数据导出csv小工具”指的是一个基于Java编程语言开发的应用程序,其主要功能是将大量数据转换并导出为CSV(逗号分隔值)格式的文件。CSV是一种通用的文件格式,广泛用于数据交换,因为它可以被...
在Java编程中,导出CSV(Comma Separated Values)和Excel文件是常见的数据处理任务,特别是在数据分析、报表生成和数据交换场景下。本篇将详细介绍如何在Java中实现这两个功能,无需指定下载路径,直接将文件保存到...
在Java编程环境中,导出CSV(Comma Separated Values)文件是一种常见的数据交换格式,尤其在数据处理和分析中非常流行。CSV文件以其简洁、易读的特性,使得它们成为跨平台传输数据的理想选择。本篇文章将深入探讨...
本实例聚焦于“java实现csv导出千万级数据实例”,旨在提供一个高效、稳定的解决方案,避免因数据量过大而导致的性能问题,如Java中的栈溢出(Stack Overflow)。CSV(Comma Separated Values)格式因其简单、通用性...
在Java开发中,处理大数据量的数据导出是一个常见的挑战,特别是在CSV格式的文件处理上。CSV(Comma Separated Values)是一种广泛使用的数据交换格式,因其简单性和通用性而受到青睐。然而,当数据量达到千万级别时...
在IT领域,高效地导出CSV文件是一项重要的技能,特别是在大数据处理、数据分析以及报表生成等场景。下面我们将详细探讨如何实现高性能的CSV导出。 1. **内存管理与数据分块** 高性能CSV导出首先要考虑的是内存管理...
- **速度**:与Excel相比,使用Java导出CSV文件通常更快,因为它避免了Excel的内存占用和计算开销。 - **灵活性**:Java可以灵活地控制文件的生成过程,例如自定义分隔符、编码、换行符等。 - **可扩展性**:Java...
在Java开发中,有时我们需要将后端数据导出为CSV(Comma Separated Values)文件,以便用户可以方便地下载和处理数据。CSV文件是一种通用的、轻量级的数据交换格式,适合存储表格数据。本篇文章将深入探讨如何使用...
本文将详细介绍一个名为EasyCSV的工具类,它为Java开发者提供了一个简便的方式来导出CSV文件。 EasyCSV是Java的一个轻量级库,设计用于简化CSV文件的读写操作。它的核心功能在于其API简洁易用,使得开发者可以快速...
java 导出csv
首先,Java并没有内置的库直接支持CSV操作,但我们可以借助第三方库,如Apache Commons CSV、OpenCSV或Java 8引入的java.util.CSV API。在这里,我们以Apache Commons CSV为例,因为它是业界广泛使用的库,提供了...
CSV文件是一种常见的数据交换格式,通常用于导入和导出数据到电子表格程序如Microsoft Excel。当在Java程序中创建或读取CSV文件时,确保正确的字符编码是至关重要的,尤其是对于包含非ASCII字符(如中文字符)的数据...
在Java编程中,CSV(Comma Separated Values)文件是一种常见的数据交换格式,它以逗号分隔每一列数据,广泛用于数据导入和导出。本篇将详细讲解如何使用Java进行CSV文件的导出与导入操作,以及涉及到的相关知识点。...
csv的文件的导入导出可能会用的到,需要的可以下一下把
java导出CVS,csv只是一种文件的形式。。。就是按照逗号(英文逗号)分隔的文件 它的做成跟普通的文件做成是一样一样的,只需要创建一个文件(*.csv),把字符串按照一定的格式(AAA,BBB\nCCC,DDD注意必须是英文的...
java导出CVS,csv只是一种文件的形式。。。就是按照逗号(英文逗号)分隔的文件 它的做成跟普通的文件做成是一样一样的,只需要创建一个文件(*.csv),把字符串按照一定的格式(AAA,BBB\nCCC,DDD注意必须是英文的...