批量数据打包下载的问题
用户根据页面上的checkboxlist复选多张表,点击下载按钮后,要求每张表的查询结果各自生成一个csv文件,然后打包下载。请高人指点! --------------------编程问答-------------------- 这个不懂地说,但是可以帮顶,我一般只是导出EXCEL,然后下载,是不是一样的啊 --------------------编程问答-------------------- 一样吧..先到处到EXCEL 然后获得这个文件的地址..下载... --------------------编程问答-------------------- 先导出excel再用压缩工具加缩起来,再进行下载--------------------编程问答-------------------- 我想把不同的表的数据保存在不同的csv文件(也就是说多个文件,不是一个。)中再打包下载,我现在能实现的是把不同的表的数据保存到了同一个文件了,不知道该怎么办了. 另外 我希望这些文件不保存到服务器,只保存在缓存中,下载后摧毁。 --------------------编程问答-------------------- http://zhidao.baidu.com/question/47027742
gzip压缩文件 --------------------编程问答--------------------
csv格式就是带逗号分隔符的txt格式,不用excel的任何控件,直接txt输出就可以
可以选择压缩成zip格式,用ICSharpCode.SharpZipLib.GZip控件
下面链接里10楼有压缩解压例子
http://topic.csdn.net/t/20040630/10/3133568.html
--------------------编程问答--------------------
其实不是叫下载后摧毁,其实就是读取文件然后输出出来把context-type改成你zip的(具体是什么你去网上查一下)然后你下载文件的地址就改成这个路径(把他当成普通的文件来读取然后用response.write()逐行输出到网页)
这就是基本文件下载的例子了 --------------------编程问答-------------------- 你们说的都是单个文件的处理吧,如果是多个文件呢?这几个不同的文件的数据是输出到同一个字符流了吗?
这方面我第一次接触 现在脑子有点乱 希望大家能比较详细的解释 谢谢了!
我的代码如下.运行结果是多条sql语句的查询结果都输出到了字符流data了,结果下载的时候所有数据都到了一个文件里,没有达到分文件的目的 (思路:通过创建sqllist循环执行多条sql语句,生成多个csv文件,然后打包下载。)
response.write(data)那里肯定是有问题,应该是用writefile吧?但具体用法还是不清楚。
for (int z = 0; z < sqlList.Count; z++)
{
string filename = sqlList[z];
DataSet ds = (DataSet)Cache.Get(filename + "ds_cache");
DataSet cds = new DataSet();
OdbcDataAdapter da = new OdbcDataAdapter(sqlList[z], MysqlConn);
da.Fill(cds,"T1");
cds.ExtendedProperties.Add("ds_T1", DateTime.Now.ToLongTimeString());
Cache.Insert(filename + "ds_cache",cds, null, DateTime.Now.AddMinutes(2), TimeSpan.Zero);
string data = "";
//data = ds.DataSetName + "\n";
foreach (DataTable tb in cds.Tables)
{
data += tb.TableName + "\n";
foreach (DataColumn column in tb.Columns)
{
data += column.ColumnName + ",";
}
data += "\n";
foreach (DataRow row in tb.Rows)
{
foreach (DataColumn column in tb.Columns)
{
data += row[column].ToString() + ",";
}
data += "\n";
}
data += "\n";
}
string csvFile = string.Format("attachment;filename={0}", filename + ".csv");
Response.ContentType = "application/ms-excel";
Response.ClearHeaders();
Response.AppendHeader("Content-disposition", csvFile);
Response.Write(data);
}
Response.End();
补充:.NET技术 , ASP.NET