快速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看看行不行!
我就想,要是直接生成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看看行不行!
相关文章推荐
- 利用OleDb方式对DataSet 和 Excel 数据快速导入导出
- 利用OleDb方式对DataSet 和 Excel 数据快速导入导出
- 利用OleDb方式对DataSet 和 Excel 数据快速导入导出
- 快速导出数据到Excel(二):利用临时文件
- 从DataSet导出数据到excel!!
- 使用HTML,CSS快速导出数据到Excel
- php将mysql数据表(含中文数据)导出生成excel表,快速生成且解决中文乱码问题。
- 通过Excel自带的查询分析器快速完成从SQL Server中导出数据的例子(通用类)
- [ASP.NET-C#]将DataSet、DataTable中的数据导出为Excel的解决方法
- C#报表数据批量快速导出到Excel(百万级数据秒级内完成)
- 考试系统--导出Dataset的数据到Excel的不同sheet中
- 在.NET中 用OleDB 把 DataSet 数据导出到 Excel文件里
- PL/SQL Developer导出大量数据到excel的快速方法,解决数据量大导出慢的问题
- 将Dataset数据导出到Excel中(ASP.NET/C#)
- dataset数据导出到Excel
- 在.NET中 用OleDB 把 DataSet 数据导出到 Excel文件里
- DataSet数据导出为Excel文档(每个DataTable为一个Sheet)
- 将中DataSet的数据导出为EXCEL文件
- 将DataSet中的数据导出Excel
- 通过Excel自带的查询分析器快速完成从SQL Server中导出数据的例子(通用类)