当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > Aspx中导Excel

ASP.NET
Asp.Net 通用数据操作类 (附通用数据基类)
asp.net汉字转拼音和获取汉字首字母的代码
asp.net 多字段模糊查询代码
OpenCms 带分页的新闻列表
URLRewriter最简单入门介绍 URLRewriter相关资源
asp.net Repeater取得CheckBox选中的某行某个值
asp.net清空Cookie的两种方法
asp.net一些很酷很实用的.Net技巧
asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
asp.net TripleDES加密、解密算法
Asp.net中防止用户多次登录的方法
asp.net Repeater取得CheckBox选中的某行某个值的c#写法
asp.net DataGridView导出到Excel的三个方法[亲测]
C#,winform,ShowDialog,子窗体向父窗体传值
asp.net学习中发现的比较完整的流程
ASP.net 页面被关闭后,服务器端是否仍然执行中?
asp.net Context.Handler 页面间传值方法
asp.net xml序列化与反序列化
asp.net实例代码protected override void Render(HtmlTextWriter writer)
asp.net(c#)捕捉搜索引擎蜘蛛和机器人

ASP.NET 中的 Aspx中导Excel


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 164 ::
收藏到网摘: n/a


 关于Aspx中导Excel,网上的方法比较的多,而最主要的是用Com的控件,小弟以前也是用有如此之方法,不过嘛,这种方法有一些小小的缺点,比如:必须要进行某种复杂的注册,而且在效率上可能也会比较的慢一些,所以,小弟用了一种变通的方法,效果还不错,不敢独留,所以与大家共同分享之。
 我们知道,在做Web的程序中有一个非常大的好处就是只要在服务器上进行配置,就可以不用考虑到客户端的东东了,本程序的主要思想是,在服务器端进行相关的操作生成Excel文件,然后再由客户端进行下载。
由于直接生成Excel文件比较的慢,所以,我先生成的是Txt文本,然后保存为Excel文件。话不多说,先Show一下我的代码。
using System;
using System.Data;
using System.IO;
using System.Web;
namespace ToExcelDSNS
{
public class ToExcelDS
{
private string _txtPath;//Txt文本的路径
private string _xlsPath;//Excel的路径
private DataSet _ds;
public ToExcelDS(string xlsPath,string txtPath,DataSet ds)//构造函数 传入参数为Excel与文本路径及转化的DataSet
{

_txtPath=txtPath;
_xlsPath=xlsPath;
_ds=ds;
}
public void PumpToExcel()//导Excel
{

DataRow[] dr=_ds.Tables[0].Select("1=1");
DataTable dt=_ds.Tables[0];
StreamWriter sw=new StreamWriter(_txtPath,false,System.Text.Encoding.Default);//文本流

string tmp="";
foreach(DataColumn dc in dt.Columns)
{
tmp+=dc.Caption+"\t";
}
sw.WriteLine(tmp+"\a");//将DataSet中的头名写进文本流中,用制表符隔开
int itemCount=dt.Rows.Count;
int columnCount=dt.Columns.Count;
for(int j=2;j<2+itemCount;j++)//将DataSet中的每行写进文本流中,用制表符隔开

{
tmp="";
for(int k=1;k {

tmp+=dr[j-2][k-1].ToString()+"\t";
}
sw.WriteLine(tmp+"\a");
}
sw.Flush();

File.Copy(_txtPath,_xlsPath,true);//将Txt保存为Excel
sw.Close();

}
}
}
一个简单而方便的导Excel就完成了,当然,有人会提到,如果一起导Excel会不会有问题,经本人测试,没有任何问题发生,原因是,在导Excel中已经有了一个本地的副本,所以不存在冲突的问题,希望大家能够从中得到启发,从而定制出更科学的方法,当然,不要忘记分享哦!