Java 导出 CSV详解编程语言
2023-06-13 09:20:39 时间
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 @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();
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; }
// 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; }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/13278.html
cjava相关文章
- java使用多线程导出excel「建议收藏」
- eclipse Java项目 动态Java项目 导入MySQL驱动jar包[通俗易懂]
- java反转数组_Java实现数组反转翻转的方法实例
- java从入门到精通_Java 入门到精通的过程
- 我的世界java版需要多少钱_我的世界Java版20w49a快照版[通俗易懂]
- java标识符是什么_Java 标识符「建议收藏」
- java oracle数据备份_Java实现Oracle数据库备份
- java 数字信封_【Java密码学】使用Bouncy Castle生成数字签名、数字信封
- JAVA导出成CSV文件详解编程语言
- Java学习笔记之九java二维数组及其多维数组的内存应用拓展延伸详解编程语言
- Java中使用poi导入、导出Excel详解编程语言
- java导出excel报表详解编程语言
- java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err详解编程语言
- Java导出Excel表(poi)名中文乱码问题处理详解编程语言
- java:POI导出excel详解编程语言
- 实现Java程序操作MySQL数据库(java调用mysql)
- java导出txt文件详解编程语言
- Java问题-java进程占用内存过高,排查原因详解编程语言
- Linux下配置Java环境变量的简易指南(linux配置java环境变量)
- 解锁Java 与 Oracle 的连接之门(java连接oracle)
- Java配置Oracle实现稳定的跨平台数据库连接(java配置oracle)
- Java连接Oracle实现简单快捷的数据传输(java联结oracle)
- 数据库Java编程修改Oracle数据库的实践(java修改oracle)