您的位置:首页 > 数据库

快速DataSet导出6万条数据到EXCEL!

2010-09-17 17:47 447 查看
今天在学做DataSet导出到EXCEL时候,参考了网上流行的几个方法,都是超过1万条就无法显示页面的

我就想,要是直接生成TXT文件,再改过后缀名就可以了!

TXT的内容:

 

<table>

 <tr>

       <td>数据</td> 

       <td style=/"vnd.ms-excel.numberformat:@/">123456789123456789</td>

</tr>

</table>

 

这样再改成xls格式就好了!那身份证这样的字段怎么办 用这样就好了

 

<td style=/"vnd.ms-excel.numberformat:@/">123456789123456789</td>

 

于是动手:

 

string sql ="select * from ODS  where rownum < 60001";  //我的数据库是oracle,所以是rownum,SQL的话改成 top 60000就OK了
ddss = C.GetDataSet(sql, "table1");

 

            StringBuilder sb = new StringBuilder();

            string head = "<table cellspacing=/"0/" cellpadding=/"5/" rules=/"all/" border=/"1/"><tr>"
                + "<td>数据1</td>"
                + "<td>数据2</td>"
                + "<td>数据3</td>"
                + "<td>数据4</td>"
                + "<td>数据5</td>"
                + "<td>数据6</td>"
                + "</tr>";
            sb.Append(head);  //写头一行的标题

            for (int i = 0; i < ddss.Tables["table1"].Rows.Count; i++)   //开始写数据
            {
                string str = "<tr>"
                    + "<td style=/"vnd.ms-excel.numberformat:@/">" + ddss.Tables["table1"].Rows[i].ItemArray[0] + "</td>"
                    + "<td style=/"vnd.ms-excel.numberformat:@/">" + ddss.Tables["table1"].Rows[i].ItemArray[1] + "</td>"
                    + "<td style=/"vnd.ms-excel.numberformat:@/">" + ddss.Tables["table1"].Rows[i].ItemArray[2] + "</td>"
                    + "<td style=/"vnd.ms-excel.numberformat:@/">" + ddss.Tables["table1"].Rows[i].ItemArray[3] + "</td>"
                    + "<td style=/"vnd.ms-excel.numberformat:@/">" + ddss.Tables["table1"].Rows[i].ItemArray[4] + "</td>"
                    + "<td style=/"vnd.ms-excel.numberformat:@/">" + ddss.Tables["table1"].Rows[i].ItemArray[5] + "</td>"
                    + "</tr>";

                sb.Append(str);
            }

            string END = "</table>";   //写结尾

            sb.Append(END);

 

            Response.Charset = "GB2312";
            Response.AddHeader("content-type", "application/x-msdownload");
            Response.AppendHeader("Content-Disposition", "attachment;filename=1.xls");   //弹出保存为XLS文件

            Page.Response.Write(sb.ToString());

            Response.End();

 

 

看看结果!是不是几秒就好了呢,结果还很好看呢

 

如果觉得这不是个标准的EXCEL文件,OK,打开后另存为 Excel文件,这样另存为的就是标准的Excel文件了!

 

明天再试下分sheet看看行不行!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息