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

ASP.NET
ASP.NET开发:简化应用程序的开发支持Web标准
asp.net XMLHttpRequest实现用户注册前的验证
asp.net 页面间传值方法小结
asp.net url重写浅谈
asp.net 验证码生成和刷新及验证
C#精髓 GridView72大绝技 学习gridview的朋友必看
实例说明asp.net中的简单角色权限控制
asp.net网站开发包wq.dll打包下载
js与ASP.NET 中文乱码问题
asp.net checkbox 动态绑定id GridView删除提示
asp.net TextBox回车触发事件 图片在img显示
asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
asp.NET 脏字过滤算法
asp.NET 脏字过滤算法 修改版
asp.net sql 数据库处理函数命令
asp.net Javascript 的几种写法与提示
ASP.NET MVC学习笔记
asp.net 中国身份证号码验证代码 非正则
Asp.net中使用Sqlite数据库的方法
asp.net 中文字符串提交乱码的解决方法

ASP.NET 中的 Aspx中导Excel


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 219 ::
收藏到网摘: 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中已经有了一个本地的副本,所以不存在冲突的问题,希望大家能够从中得到启发,从而定制出更科学的方法,当然,不要忘记分享哦!