当前位置:编程学习 > C#/ASP.NET >>

批量数据打包下载的问题

用户根据页面上的checkboxlist复选多张表,点击下载按钮后,要求每张表的查询结果各自生成一个csv文件,然后打包下载。请高人指点! --------------------编程问答-------------------- 这个不懂地说,但是可以帮顶,我一般只是导出EXCEL,然后下载,是不是一样的啊 --------------------编程问答-------------------- 一样吧..先到处到EXCEL 然后获得这个文件的地址..下载... --------------------编程问答-------------------- 先导出excel再用压缩工具加缩起来,再进行下载
--------------------编程问答-------------------- 我想把不同的表的数据保存在不同的csv文件(也就是说多个文件,不是一个。)中再打包下载,我现在能实现的是把不同的表的数据保存到了同一个文件了,不知道该怎么办了. 另外 我希望这些文件不保存到服务器,只保存在缓存中,下载后摧毁。 --------------------编程问答-------------------- http://zhidao.baidu.com/question/47027742

gzip压缩文件 --------------------编程问答--------------------
引用 4 楼 jeffrey0403 的回复:
我想把不同的表的数据保存在不同的csv文件(也就是说多个文件,不是一个。)中再打包下载,我现在能实现的是把不同的表的数据保存到了同一个文件了,不知道该怎么办了. 另外 我希望这些文件不保存到服务器,只保存在缓存中,下载后摧毁。


csv格式就是带逗号分隔符的txt格式,不用excel的任何控件,直接txt输出就可以 

可以选择压缩成zip格式,用ICSharpCode.SharpZipLib.GZip控件

下面链接里10楼有压缩解压例子
http://topic.csdn.net/t/20040630/10/3133568.html
--------------------编程问答--------------------
引用 4 楼 jeffrey0403 的回复:
我想把不同的表的数据保存在不同的csv文件(也就是说多个文件,不是一个。)中再打包下载,我现在能实现的是把不同的表的数据保存到了同一个文件了,不知道该怎么办了. 另外 我希望这些文件不保存到服务器,只保存在缓存中,下载后摧毁。

其实不是叫下载后摧毁,其实就是读取文件然后输出出来把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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,