首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

顶者有分~导出数据到Excel总是出错。数据量超过三万条,一次性导出到Excel.使用C#语言写,该怎么处理

2012-01-12 
顶者有分~~!!!导出数据到Excel总是出错。数据量超过三万条,一次性导出到Excel.使用C#语言写显示在页面上的

顶者有分~~!!!导出数据到Excel总是出错。数据量超过三万条,一次性导出到Excel.使用C#语言写
显示在页面上的信息:您试图在此   Web   服务器上访问的   Web   应用程序当前不可用。请点击   Web   浏览器中的“刷新”按钮重试您的请求。
代码:db.RunProc( "sp_downDataList ",prams,out   dr);

grdexcel.DataSource   =   dr;
grdexcel.DataBind();
Button1.Enabled=false;
Response.Clear();  
Response.Buffer=   true;  
Response.Charset= "gb2312 ";  
                     
Response.AppendHeader( "Content-Disposition ", "attachment;filename=sheet "+DateTime.Now.ToString( "yyyyMMddss ")+ ".xls ");
Response.ContentEncoding   =   System.Text.Encoding.UTF8;
//Response.ContentEncoding=System.Text.Encoding.GetEncoding( "gb2312 ");  
Response.ContentType   =   "application/ms-excel ";  
this.EnableViewState   =   false;

System.IO.StringWriter   oStringWriter   =   new   System.IO.StringWriter();  
System.Web.UI.HtmlTextWriter   oHtmlTextWriter   =   new   System.Web.UI.HtmlTextWriter(oStringWriter);
grdexcel.RenderControl(oHtmlTextWriter);  
Response.Write(oStringWriter.ToString());  



[解决办法]
不熟悉,UP一下

[解决办法]
不大赞同你的思路,我之前一般采用在服务器端生成.csv文件方式导出数据。

.csv是Excel可以直接读取的文件格式。多个字段以逗号分隔。写完之后使用Redirect语句即可。

使用StringBuilder可以提高性能。
[解决办法]
孟老大的:
http://dotnet.aspx.cc/article/8a4cbf47-b888-4832-3389-ed3a3a3c8aab/read.aspx
[解决办法]
up了,最近要做sharepoint,估计和excel少不了关系。mark
[解决办法]
读取到dataset`` 应该和 reader 差不多`
private DataSet InstrumentExcelToDataSet(string Path)
{
try
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source= " + Path + "; " + "Extended Properties= 'Excel 8.0;IMEX=1 ' ";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
OleDbDataAdapter myCommand = null;
DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();
string strExcel = "SELECT 电话号码 FROM [ " + tableName + "] ";
myCommand = new OleDbDataAdapter(strExcel, strConn);
dsExcel = new DataSet();
myCommand.Fill(dsExcel, "table1 ");
conn.Close();
}
catch (OleDbException ole)
{
throw ole;
}
catch (SystemException se)
{

}
return dsExcel;
}
[解决办法]
3W条数据的excel?晕我的机子肯定打不开...
[解决办法]
我晕,用多线程处理啊

[解决办法]
3W条数据小意思..不回打不开的..楼上2层的兄弟太小巧microsoft了

楼主的思路不对,应该使用OWC编程的..

我处理过类似的问题.数据量有10几万...
[解决办法]
帮顶一下!
------解决方案--------------------


帮顶~
[解决办法]
不太熟悉,帮顶.
[解决办法]
关注
[解决办法]
数据量有点大哦
[解决办法]
前面引用Excel的COM
try
{
DataSet set1=new DataSet();
SqlDataAdapter ad=new SqlDataAdapter( "select * from YanZheng ", "server=.;database=PingJiao;uid=sa;pwd=; ");
ad.Fill(set1, "YanZheng ");
this.dataGrid1.DataSource=set1.Tables[0];

Excel.ApplicationClass excelApp=new Excel.ApplicationClass();
Excel.Workbook excelBook=excelApp.Workbooks.Add(1);
Excel.Worksheet excelSheet=(Excel.Worksheet)excelBook.Worksheets[1];
excelApp.Visible=true;
excelSheet.Cells[1,1]= "PwdID ";
excelSheet.Cells[1,2]= "PwdString ";
DataTable myTable=set1.Tables[ "YanZheng "];
for(int i=1;i <myTable.Rows.Count+1;i++)
{
excelSheet.Cells[i+1,1]=myTable.Rows[i-1][0].ToString();//[i-1,0].ToString();
excelSheet.Cells[i+1,2]=myTable.Rows[i-1][1].ToString();
}
File.Delete(@ "E:\Documents and Settings\wys\My Documents\Sheet1.xls ");
excelBook.Save();
string file= "xiaohua.xls ";
string filepath=@Application.StartupPath+@ "\ "+file+ " ";
File.Delete(filepath);
File.Copy(@ "E:\Documents and Settings\wys\My Documents\Sheet1.xls ",@Application.StartupPath+@ "\ "+file+ " ");
File.Delete(@ "E:\Documents and Settings\wys\My Documents\Sheet1.xls ");

//System.Diagnostics.Process[] processOnComputer = System.Diagnostics.Process.GetProcesses();
//foreach (System.Diagnostics.Process p in processOnComputer)
//{
//this.listBox1.Items.Add(p.ToString());
//}

//File.Move(@ "E:\Documents and Settings\wys\My Documents\Sheet1.xls ",filepath);
}
catch(Exception x)
{
MessageBox.Show(x.Message);
}
[解决办法]
up
[解决办法]
友情 up
[解决办法]
顶,Mark下!
[解决办法]

该操作在C/S下准备不会出问题!
这个异常是因为你的IIS服务器等待时间过长~,可以在IIS里重新设置
[解决办法]
http://www.cnblogs.com/fhj2050/articles/633180.html
[解决办法]
关注
[解决办法]
http://www.cnblogs.com/mail-ricklee/archive/2007/01/22/627362.html

NickLee.Framework中的NickLee.Common.ExcelLite专门的excel生成控件
你可以参考
[解决办法]
UP一下 这个很可能和数据量有问题 。我会关注这个帖子的

热点排行