求Asp.Net导出大数量Excel文件方案(至少有1000万条) 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个表只能有65535行,这么大量的数据就不要用Excel了,Access都撑不下。如果一定要的话,只能按时间或其他条件分文件存了。 只能存多个文件了!!一个excel放不了那么多!! 1000W数据倒入到excel,给谁看呢?谁要是能去看,那真是个牛人 Excel一张Sheet最多只能达到65536行。试试可不可以分批导入啊?? 分次提取记录比如10000到dataset里 Dataset写入excel文件,这样不就可以了吗? public void CreateExcel(DataSet ds,string FileName) { HttpResponse resp; resp = System.Web.HttpContext.Current.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName); string colHeaders= "", ls_item=""; int i=0; //定义表对象与行对像,同时用DataSet对其值进行初始化 DataTable dt=ds.Tables[0]; DataRow[] myRow=dt.Select(""); //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符 for(i=0;i<dt.Columns.Count-1;i++) colHeaders+=dt.Columns[i].Caption.ToString()+"\t"; colHeaders +=dt.Columns[i].Caption.ToString() +"\n"; //向HTTP输出流中写入取得的数据信息 resp.Write(colHeaders); //逐行处理数据 foreach(DataRow row in myRow) { //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n for(i=0;i<dt.Columns.Count-1;i++) ls_item +=row[i].ToString() + "\t"; ls_item += row[i].ToString() +"\n"; //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 resp.Write(ls_item); ls_item=""; } //写缓冲区中的数据到HTTP头文件中 resp.End(); } .net技术太多了,每次来都不会,想帮别人解答都不成,见笑了 数据量很大。在数据库中直接导入excel或多线程分批处理,多sheet ArrayList 排列问题 AutoCompleteExtender的显示问题 动态加载用户控件,一定要放一个placeholder吗? 大家帮忙看看这个存储过程哪里不对. 老生常弹,如何打开一个Excel文件?? 如何在.net环境中执行 select identity(int,1,1) as 序号,* into #temp from table这样的语句。 问一下正则表达式 问个问题 在线等!!!!!! 紧急!关于根据给定条件,动态生成弹出式窗口的问题 我的.NET框架安装后,不能正常启动,请大虾指点? PAYPAL接口谁做过 各位高手,请教大家一个问题
如果一定要的话,只能按时间或其他条件分文件存了。
谁要是能去看,那真是个牛人
试试可不可以分批导入啊??
分次提取记录比如10000到dataset里
Dataset写入excel文件,这样不就可以了吗?
public void CreateExcel(DataSet ds,string FileName)
{
HttpResponse resp;
resp = System.Web.HttpContext.Current.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
string colHeaders= "", ls_item="";
int i=0;
//定义表对象与行对像,同时用DataSet对其值进行初始化
DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select("");
//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
for(i=0;i<dt.Columns.Count-1;i++)
colHeaders+=dt.Columns[i].Caption.ToString()+"\t";
colHeaders +=dt.Columns[i].Caption.ToString() +"\n";
//向HTTP输出流中写入取得的数据信息
resp.Write(colHeaders);
//逐行处理数据
foreach(DataRow row in myRow)
{
//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
for(i=0;i<dt.Columns.Count-1;i++)
ls_item +=row[i].ToString() + "\t";
ls_item += row[i].ToString() +"\n";
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item="";
}
//写缓冲区中的数据到HTTP头文件中
resp.End();
}
或多线程分批处理,多sheet