cvs文件其实就是一文本文件的形式存储信息,该文件可转化为excel 文件及其他文件类型。
可以实现cvs文件下载的java代码
package com.jifeng.report.service.impl; import java.io.File; import java.io.OutputStream; import java.text.MessageFormat; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.Region; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import com.jifeng.common.common.PortalConfig; import com.jifeng.common.util.DateFormatHelper; import com.jifeng.common.util.IdWorkerUtil; import com.jifeng.common.util.StringUtil; import com.jifeng.module.campaigns.entity.Campaigns; import com.jifeng.report.service.CampaignsCsvService; /** * 营销活动cvs下载service实现 */ @SuppressWarnings("deprecation") @Service public class CampaignsCsvServiceImpl implements CampaignsCsvService { private Logger log = LoggerFactory.getLogger(CampaignsCsvServiceImpl.class); /** * 营销活动列表下载csv * @param campaignsList 活动详情 * @param response * @return * @throws Exception */ public boolean campaignsListCsvDown(List<Campaigns> campaignsList, HttpServletResponse response){ try { //CSV文件生成 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("campaignsListCsvDown"); HSSFCellStyle style = workbook.createCellStyle(); // 样式对象 style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直 style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平 HSSFRow row = sheet.createRow((short) 0); HSSFRow row1 = sheet.createRow((short) 1); // 写入头部信息 addMergeCell(sheet,row,style,0,0,1,0,"活动名称"); addMergeCell(sheet,row,style,0,1,1,1,"开始日期"); addMergeCell(sheet,row,style,0,2,1,2,"持续时间"); addMergeCell(sheet,row,style,0,3,1,3,"店铺"); addMergeCell(sheet,row,style,0,4,1,4,"开销"); addMergeCell(sheet,row,style,0,5,0,6,"客流量变化"); addMergeCell(sheet,row1,style,1,5,1,5,"店铺"); addMergeCell(sheet,row1,style,1,6,1,6,"对比位置"); addMergeCell(sheet,row,style,0,7,1,7,"平均成本每增加访客"); //从第3行开始循环写数据 int rowNum = 2; for (Campaigns campaigns : campaignsList) { HSSFRow row2 = sheet.createRow(rowNum); row2.createCell(0).setCellValue(campaigns.getCampaignsName()); row2.createCell(1).setCellValue(DateFormatHelper.formatToMdy(campaigns.getStartTime())); row2.createCell(2).setCellValue(campaigns.getDayNum() + "天"); row2.createCell(3).setCellValue(campaigns.getStoreNum() + "家"); row2.createCell(4).setCellValue("$" + campaigns.getSpend()); row2.createCell(5).setCellValue(campaigns.getRateChange() + "%"); row2.createCell(6).setCellValue("不涉及"); if(campaigns.getCostAvg() > 0){ row2.createCell(7).setCellValue(campaigns.getCostAvg()); }else{ row2.createCell(7).setCellValue("不涉及"); } rowNum++; } File file = new File(PortalConfig.getPdfAddress()+ IdWorkerUtil.nextId() +".csv"); String fileName = file.getPath(); if(null != response) { // 设置下载时客户端Excel的名称 fileName = MessageFormat.format(fileName, DateFormatHelper.getDate()); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + StringUtil.toUTF8String("campaignsListCsvDown.csv")); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); ouputStream.flush(); ouputStream.close(); } return true; } catch (Exception e) { log.error("",e); return false; } } /** * 营销活动详情根据日期下载csv * @param campaignsList 活动详情 * @param response * @return * @throws Exception */ public boolean campaignsDetailsDayCsvDown(List<Campaigns> campaignsList, HttpServletResponse response) { try { //CSV文件生成 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("campaignsDetailsDayAnalysis"); //第一行 HSSFRow header = sheet.createRow(0); header.createCell(0).setCellValue("日期"); header.createCell(1).setCellValue("总客流量"); header.createCell(2).setCellValue("平均客流量每店"); header.createCell(3).setCellValue("比较时期同比"); //从第2行开始循环写数据 int rowNum = 1; for (Campaigns campaigns : campaignsList) { HSSFRow row = sheet.createRow(rowNum); row.createCell(0).setCellValue(campaigns.getCurrentDate()); row.createCell(1).setCellValue(campaigns.getEnters()); row.createCell(2).setCellValue(campaigns.getEntersAvg()); row.createCell(3).setCellValue(campaigns.getRateTb() + "%"); rowNum++; } File file = new File(PortalConfig.getPdfAddress()+ IdWorkerUtil.nextId() +".csv"); String fileName = file.getPath(); if(null != response) { // 设置下载时客户端Excel的名称 fileName = MessageFormat.format(fileName, DateFormatHelper.getDate()); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + StringUtil.toUTF8String("campaignsDetailsDayAnalysis.csv")); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); ouputStream.flush(); ouputStream.close(); } return true; } catch (Exception e) { log.error("",e); return false; } } /** * 营销活动详情根据场地下载csv * @param campaignsList 活动详情 * @param response * @return * @throws Exception */ public boolean campaignsDetailsStoreCsvDown(List<Campaigns> campaignsList, HttpServletResponse response) { try { //CSV文件生成 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("campaignsDetailsStoreCsvDown"); //第一行 HSSFRow header = sheet.createRow(0); header.createCell(0).setCellValue("店铺"); header.createCell(1).setCellValue("店铺客流量变化"); header.createCell(2).setCellValue("销售额"); header.createCell(3).setCellValue("成交率"); header.createCell(4).setCellValue("客流量"); //从第2行开始循环写数据 int rowNum = 1; for (Campaigns campaigns : campaignsList) { HSSFRow row = sheet.createRow(rowNum); row.createCell(0).setCellValue(campaigns.getStoreName()); row.createCell(1).setCellValue(campaigns.getRateChange() + "%"); row.createCell(2).setCellValue("$" + campaigns.getSales()); row.createCell(3).setCellValue(campaigns.getConversion() +"%"); row.createCell(4).setCellValue(campaigns.getEnters()); rowNum++; } File file = new File(PortalConfig.getPdfAddress()+ IdWorkerUtil.nextId() +".csv"); String fileName = file.getPath(); if(null != response) { // 设置下载时客户端Excel的名称 fileName = MessageFormat.format(fileName, DateFormatHelper.getDate()); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + StringUtil.toUTF8String("campaignsDetailsStoreCsvDown.csv")); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); ouputStream.flush(); ouputStream.close(); } return true; } catch (Exception e) { log.error("",e); return false; } } /** * 合并单元格写法 * @param sheet * @param row * @param style 样式 * @param beginRow 开始行 * @param beginColumn 开始列 * @param endRow 结束行 * @param endColumn 结束列 * @param value 值 */ public void addMergeCell(HSSFSheet sheet,HSSFRow row,HSSFCellStyle style,int beginRow,int beginColumn,int endRow,int endColumn,String value){ // 单元格合并 // 四个参数分别是:起始行,起始列,结束行,结束列 sheet.addMergedRegion(new Region(beginRow, (short) beginColumn, endRow, (short) endColumn)); //希尔数据的列 HSSFCell cell = row.createCell((short) beginColumn); // 跨单元格显示的数据 cell.setCellValue(value); cell.setCellStyle(style); } }
相关推荐
使用POI技术对Excel导入导出及支持CSV文件导入导出。
java导出数据时,如果对数据格式没有特殊要求,为了提高效率可以导出CSV格式的文件,导出CSV文件不支持多个sheet页。
本文将深入探讨如何使用POI和JXL框架批量导出CSV文件,处理千万级的数据,同时避免内存溢出的问题。 首先,让我们了解CSV(Comma Separated Values)文件格式。CSV是一种通用的、轻量级的文件格式,用于存储表格...
总结,"ssh导出cvs到客户端"这个任务涉及了使用Java编程语言和Apache POI库生成CSV文件,然后利用SSH协议(可能通过JSch库)将文件安全地传输到客户端。这个过程在数据迁移、备份、分析等场景中非常常见,特别是在...
总之,通过Apache POI库和简单的文件I/O操作,我们可以轻松地在Java中将`List`数据导出为Excel和CSV格式,这对于数据处理和分析是非常有用的。CSDN等在线资源提供了丰富的学习材料,帮助开发者快速掌握这些技能。
在Java中,处理Excel文件通常使用Apache POI库,虽然POI功能强大,但处理大量数据时会占用大量内存,尤其是在导出数据时。为了解决这个问题,开发者可以转向生成CSV文件,因为CSV文件本质上是文本文件,生成和读取都...
在Java编程中,导出CSV(Comma Separated Values)和Excel文件是常见的数据处理任务,特别是在数据分析、报表生成和数据交换场景下。本篇将详细介绍如何在Java中实现这两个功能,无需指定下载路径,直接将文件保存到...
easypoi常用导入,导出,工具,引入easypoi包ExcelUtil工具类,可以直接导出查询的数据
标题中的“java 大数据导出csv小工具”指的是一个基于Java编程语言开发的应用程序,其主要功能是将大量数据转换并导出为CSV(逗号分隔值)格式的文件。CSV是一种通用的文件格式,广泛用于数据交换,因为它可以被...
综上所述,"导入导出excel2003、2007、cvs 的demo"涵盖了使用Apache POI处理Excel文件以及处理CSV文件的基本步骤。CustBatchModifyAction.java作为这个过程的一部分,可能是实现批量数据修改的关键组件。在实际开发...
在Java编程中,处理Office文档和PDF文件是常见的任务,特别是在报表生成和数据导出的场景下。本篇文章主要介绍了如何使用Java来操作Office文件(如Excel)和PDF文件,以便将页面列表导出为CSV、Excel和PDF格式的报表...
poi读取大量数据会造成gc内存溢出的报错,由于垃圾回收机制无法将大量的对象及时的回收,而这些对象又会保存在内存中,会导致内存不够用的情况,这时候我们就需要使用新的方法,读取为cvs即可.此解决方案可支持千万数据的...
在IT行业中,处理大量数据是常见的挑战之一,尤其是在数据导出方面。本实例聚焦于“java实现csv导出千万级数据实例”,旨在提供一个高效、稳定的解决方案,避免因数据量过大而导致的性能问题,如Java中的栈溢出...
在处理文件导出,尤其是办公文档如Word、Excel、PDF和TXT时,Java提供了多个库来帮助开发者实现这些功能。本教程将详细介绍如何使用Java进行文件导出,并确保与Office 2003和Office 2007的兼容性。 首先,我们要...
CSV文件通常用于导入和导出数据库,或者作为数据分析的基础数据源。 在Java中,读取Excel文件可以使用Apache POI库。该库提供了一套API,能够方便地操作Excel文件的各个部分,包括工作簿(Workbook)、工作表...
1. 数据导出至Excel.doc(包括当前导出方法小结,自己的示例,参考的网站) 2. poi-3.7-20101029.jar:当前最新的稳定的操作Excel的开发包 3. AirExcel.rar,as3xls.rar:air下Excel开发包 4. csvlib-1.4.1.rar:生成...
CSV(Comma Separated Values)文件是一种常见的数据交换格式,常用于导入和导出表格数据。在Java中,我们可以使用Apache Commons CSV库来创建和读取CSV文件。通过该库,开发者可以轻松地将数据库查询结果或其他结构...
2. **导入导出**:支持导入CSV文件,并能将其导出为XLS格式,也可能支持其他数据格式。 3. **数据预览**:在转换前,用户可以预览CSV数据,检查是否有格式问题或错误。 4. **转换设置**:允许用户自定义转换参数,如...
开发者负责用户注册和登录模块,通过泛型技术优化DAO层,利用POI导出Excel数据。 - **汇友办公自动化系统**:项目涵盖了多种企业办公功能,采用Spring+Struts2+Hibernate框架,结合SpringSecurity进行权限管理,...