代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
导出csv格式打成zip包并下载
作者:
小六大人
/ 发布于
2013/7/1
/
824
现在是超过6万条再生成一个csv文件,并起打在一个zip包里面
public void exportAllCsv(HttpServletRequest request, HttpServletResponse response,int count,String querysql) throws Exception{ try{ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String reportTitle = "push_"+sdf.format(new Date());//导出文件的名字 CSVWriter writer = null; String[] header ={"手机号码","内容","发送时间"};//表头 int pageSiz= 60000;//设置每一个excel文件导出的数量 int page;//页数 //计算分页 page = count/pageSiz+(count%pageSiz > 0 ? 1:0); String auto_name = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());//当前时间//自动的生成一个文件码 String folder = request.getRealPath("upload") + File.separator +auto_name+"_myfolder"; //如果文件夹已存在就删除,可以根据需求安排是否进行删除,按照我的需求我不需要删除,因为我自动生成的文件码不会重复 //dropFolderOrFile(new File(folder)); File myfolder = new File(folder); myfolder.mkdir(); //开始从第一页循环导出一个文件到那个文件夹 DAO dao=new DAO(); for(int i = 1; i <= page; i++){ PreparedStatement preparedStatement = null; ResultSet result = null; Connection conn =DAO.getConn(); String executeStr = "SELECT MOBILE_LIST,CONTENT,SUBMIT_TIME FROM (select rownum as myNum,TempAA.* FROM (" + querysql + ")TempAA ) where myNum>=" + (i-1)*pageSiz + " and myNum<=" + pageSiz*i; preparedStatement = conn.prepareStatement(executeStr); result = preparedStatement.executeQuery(executeStr); int j=i; File f = new File(myfolder+File.separator+reportTitle+"_"+j+".csv"); if(f.exists()){ f.delete(); }else{ f.createNewFile(); } writer = new CSVWriter(new FileWriter(f)); writer.writeNext(header); writer.writeAll(result,true); result.close(); preparedStatement.close(); conn.close(); writer.close(); } zipFile(folder);//folder是之前获取的文件夹路径 StringBuilder uri = new StringBuilder(); uri.append(folder); uri.append(".zip"); downloadFile(request,response,uri);//去下载zip文件 }catch(Exception e){ e.printStackTrace(); } } 将指定文件夹打包成zip /** * 将指定文件夹打包成zip * @param folder * @throws IOException */ private void zipFile(String folder) throws IOException { File zipFile = new File(folder + ".zip"); if (zipFile.exists()) { zipFile.delete(); } ZipOutputStream zipout = new ZipOutputStream(new FileOutputStream(zipFile)); File dir = new File(folder); File[] fs = dir.listFiles(); byte[] buf = null; if(fs!=null){ for (File f : fs) { zipout.putNextEntry(new ZipEntry(f.getName())); FileInputStream fileInputStream = new FileInputStream(f); buf = new byte[2048]; BufferedInputStream origin = new BufferedInputStream(fileInputStream,2048); int len; while ((len = origin.read(buf,0,2048))!=-1) { zipout.write(buf,0,len); } zipout.flush(); origin.close(); fileInputStream.close(); } } zipout.flush(); zipout.close(); }
试试其它关键字
打成zip包并下载
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
小六大人
贡献的其它代码
(
1
)
.
导出csv格式打成zip包并下载
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3